Index: trunk/MagicSoft/Mars/msimcamera/MSimGeomCam.cc
===================================================================
--- trunk/MagicSoft/Mars/msimcamera/MSimGeomCam.cc	(revision 9342)
+++ trunk/MagicSoft/Mars/msimcamera/MSimGeomCam.cc	(revision 9347)
@@ -37,6 +37,7 @@
 //   MPhotonEvent
 //   fNameGeomCam [MGeomCam]
-//   IntendedTrigPos [MParameterD]
 //   MRawRunHeader
+//   [IntendedPulsePos [MParameterD]]
+//   [MPulseShape]
 //
 //  Output Containers:
@@ -103,4 +104,5 @@
 
     fPulse = (MPulseShape*)pList->FindObject("MPulseShape");
+/*
     if (!fPulse)
     {
@@ -108,6 +110,7 @@
         return kFALSE;
     }
-
+ */
     fPulsePos = (MParameterD*)pList->FindObject("IntendedPulsePos", "MParameterD");
+/*
     if (!fPulsePos)
     {
@@ -115,5 +118,5 @@
         return kFALSE;
     }
-
+*/
     fHeader = (MRawRunHeader*)pList->FindObject("MRawRunHeader");
     if (!fHeader)
@@ -168,11 +171,11 @@
 
     // ------ FIXME: Move somewhere else? MSimCalibrationSignal ------
-
+/*
     if (!fEvt->IsSorted())
     {
-        *fLog << err << "ERROR - MPhotonEvent must be sorted!" << endl;
+        *fLog << err << "ERROR - MSimGeomCam: MPhotonEvent must be sorted!" << endl;
         return kERROR;
     }
-
+ */
     const Float_t freq = fHeader->GetFreqSampling()/1000.;
 
@@ -185,6 +188,6 @@
 
     // Length (ns), Pulse position (Units ns)
-    const Float_t pp   = fPulsePos->GetVal();
-    const Float_t pw   = fPulse->GetPulseWidth();
+    const Float_t pp   = fPulsePos ? fPulsePos->GetVal()     : 0;
+    const Float_t pw   = fPulse    ? fPulse->GetPulseWidth() : 0;
 
     fStat->SetTimeMedDev(fEvt->GetTimeMedianDev());
Index: trunk/MagicSoft/Mars/msimcamera/MSimSignalCam.cc
===================================================================
--- trunk/MagicSoft/Mars/msimcamera/MSimSignalCam.cc	(revision 9342)
+++ trunk/MagicSoft/Mars/msimcamera/MSimSignalCam.cc	(revision 9347)
@@ -35,4 +35,5 @@
 //   MPhotonEvent
 //   MPhotonStatistics
+//   [TriggerPos [MParameterD]]
 //
 //  Output Containers:
@@ -90,4 +91,5 @@
 
     fTrigger = (MParameterD*)pList->FindObject("TriggerPos", "MParameterD");
+/*
     if (!fTrigger)
     {
@@ -95,5 +97,5 @@
         return kFALSE;
     }
-
+*/
     fSignal = (MSignalCam*)pList->FindCreateObj("MSignalCam");
     if (!fSignal)
@@ -111,4 +113,10 @@
 {
     const UInt_t npix = fSignal->GetNumPixels();
+
+    if (npix==0)
+    {
+        *fLog << err << "ERROR - MSignalCam has 0 entries. Presumably MGeomApply::ReInit not done." << endl;
+        return kFALSE;
+    }
 
     if (fCont.GetSize()!=npix)
@@ -163,5 +171,5 @@
     // What about events with trigger<0?
     const Float_t trig  = fTrigger && fTrigger->GetVal()>=0 ? fTrigger->GetVal()  : 0;
-    const Float_t first = fStat->GetTimeFirst()+trig /*+50+40*/;
+    const Float_t first = fStat->GetTimeFirst()+trig;
 
     // Loop over all pixels and set signal and arrival time.
