Index: trunk/ppSim/src/ppSimMakeDark.c
===================================================================
--- trunk/ppSim/src/ppSimMakeDark.c	(revision 17557)
+++ trunk/ppSim/src/ppSimMakeDark.c	(revision 18011)
@@ -11,6 +11,20 @@
     psMetadata *recipe = psMetadataLookupMetadata(&mdok, config->recipes, PPSIM_RECIPE); // Recipe
 
-    float darkRate = psMetadataLookupF32(NULL, recipe, "DARK.RATE"); // Dark rate
-    float expTime  = psMetadataLookupF32(NULL, recipe, "EXPTIME"); // Exposure time
+    bool dark = psMetadataLookupBool(&mdok, recipe, "DARK"); // Generate a DARK?
+    if (!dark) return true;
+
+    float darkRate = psMetadataLookupF32(&mdok, recipe, "DARK.RATE"); // Dark rate
+    if (isnan(darkRate)) {
+      psError(PS_ERR_UNKNOWN, false, "missing DARK.RATE\n");
+      return false;
+    }
+
+    float expTime  = psMetadataLookupF32(&mdok, recipe, "EXPTIME"); // Exposure time
+    if (isnan(expTime)) {
+      psError(PS_ERR_UNKNOWN, false, "missing EXPTIME\n");
+      return false;
+    }
+
+    psTrace("ppSim", 6, "darkRate: %f, expTime: %f\n", darkRate, expTime);
 
     for (int y = 0; y < signal->numRows; y++) {
