Index: /trunk/ppMerge/src/ppMergeScaleZero.c
===================================================================
--- /trunk/ppMerge/src/ppMergeScaleZero.c	(revision 13813)
+++ /trunk/ppMerge/src/ppMergeScaleZero.c	(revision 13814)
@@ -146,4 +146,6 @@
     }
 
+    pmFPAview *view = pmFPAviewAlloc(0);
+
     bool status = true;                 // Status of getting the scale and zero --- did everything go right?
     for (int i = 0; i < filenames->n; i++) {
@@ -176,11 +178,19 @@
                 // Normalising by the exposure time
                 if (options->darktime) {
-                    darktime->data.F32[i][cellNum] = psMetadataLookupF32(&mdok, cell->concepts,
-                                                                        "CELL.DARKTIME");
-                    if (!mdok || isnan(darktime->data.F32[i][cellNum])) {
-                        psLogMsg(__func__, PS_LOG_WARN, "CELL.DARKTIME for file %s chip %d cell %d is not "
-                                 "set.\n", name, j, k);
-                        darktime->data.F32[i][cellNum] = NAN;
+                    darktime->data.F32[i][cellNum] = psMetadataLookupF32(NULL, cell->concepts,
+                                                                         "CELL.DARKTIME");
+                    if (isnan(darktime->data.F32[i][cellNum])) {
+                        psWarning("CELL.DARKTIME for file %s chip %d cell %d is not set.\n", name, j, k);
                         status = false;
+                    } else {
+                        view->chip = j;
+                        view->cell = k;
+                        darktime->data.F32[i][cellNum] = pmFPADarkNorm(fpa, view,
+                                                                       darktime->data.F32[i][cellNum]);
+                        if (isnan(darktime->data.F32[i][cellNum])) {
+                            psWarning("Cannot get dark normalisation for file %s chip %d cell %d.\n",
+                                      name, j, k);
+                            status = false;
+                        }
                     }
                 }
@@ -237,9 +247,9 @@
                     }
                     status = psVectorStats(bgStats, sample, sampleMask, NULL, options->combine->maskVal);
-		    if (!status) {
-		      psTrace("ppMerge", 3, "failed to get stats for for %s, cell %d is %f\n", name, cellNum,
-			      background->data.F32[i][cellNum]);
-		      psErrorClear();
-		    }
+                    if (!status) {
+                      psTrace("ppMerge", 3, "failed to get stats for for %s, cell %d is %f\n", name, cellNum,
+                              background->data.F32[i][cellNum]);
+                      psErrorClear();
+                    }
                     psFree(sample);
                     psFree(sampleMask);
@@ -256,4 +266,5 @@
     }
     psFree(bgStats);
+    psFree(view);
 
     if (options->scale) {
