Index: trunk/ppImage/src/ppImageDetrendReadout.c
===================================================================
--- trunk/ppImage/src/ppImageDetrendReadout.c	(revision 16844)
+++ trunk/ppImage/src/ppImageDetrendReadout.c	(revision 16870)
@@ -33,5 +33,6 @@
 
     // set up the dark and bias
-    pmCell *dark = NULL;
+    pmCell *dark = NULL;                // Multi-dark
+    pmReadout *oldDark = NULL;          // Old-fashioned dark
     pmReadout  *bias = NULL;
     if (options->doBias) {
@@ -39,10 +40,17 @@
     }
     if (options->doDark) {
-        dark = pmFPAfileThisCell(config->files, detview, "PPIMAGE.DARK");
+        bool mdok;                      // Status of MD lookup
+        psMetadata *recipe = psMetadataLookupPtr (&mdok, config->recipes, RECIPE_NAME);
+        assert(mdok && recipe);
+        if (psMetadataLookupBool(&mdok, recipe, "OLDDARK")) {
+            oldDark = pmFPAfileThisReadout(config->files, detview, "PPIMAGE.DARK");
+        } else {
+            dark = pmFPAfileThisCell(config->files, detview, "PPIMAGE.DARK");
+        }
     }
 
     // Bias, dark and overscan subtraction are all merged.
     if (options->doBias || options->doOverscan) {
-        if (!pmBiasSubtract(input, options->overscan, bias, NULL, view)) {
+        if (!pmBiasSubtract(input, options->overscan, bias, oldDark, view)) {
             psError(PS_ERR_UNKNOWN, false, "Unable to subtract bias.");
             return false;
@@ -56,5 +64,5 @@
     }
 
-    if (options->doDark) {
+    if (options->doDark && dark) {
         if (!pmDarkApply(input, dark, options->maskValue)) {
             psError(PS_ERR_UNKNOWN, false, "Unable to subtract dark.");
