Index: /trunk/psModules/src/camera/pmFPAWrite.c
===================================================================
--- /trunk/psModules/src/camera/pmFPAWrite.c	(revision 7728)
+++ /trunk/psModules/src/camera/pmFPAWrite.c	(revision 7729)
@@ -107,5 +107,5 @@
     // We only write out a blank PHU if it's specifically requested.
     bool writeBlank = blank && hdu->blankPHU && !hdu->images; // Write a blank PHU?
-    bool writeImage = !hdu->blankPHU && hdu->images; // Write an image?
+    bool writeImage = !blank && !hdu->blankPHU && hdu->images; // Write an image?
 
     if (writeBlank || writeImage) {
@@ -151,5 +151,5 @@
         // We only write out a blank PHU if it's specifically requested.
         bool writeBlank = blank && hdu->blankPHU && !hdu->images; // Write a blank HDU?
-        bool writeImage = !hdu->blankPHU && hdu->images; // Write an image?
+        bool writeImage = !blank && !hdu->blankPHU && hdu->images; // Write an image?
 
         if (writeBlank || writeImage) {
@@ -168,9 +168,10 @@
 
     // Recurse to lower level if specifically requested.
+    // XXX recursion implies blank == false (must be called on correct level?)
     if (recurse) {
         psArray *cells = chip->cells;       // Array of cells
         for (int i = 0; i < cells->n; i++) {
             pmCell *cell = cells->data[i];  // The cell of interest
-            if (!pmCellWrite(cell, fits, db, blank)) {
+            if (!pmCellWrite(cell, fits, db, false)) {
                 psError(PS_ERR_IO, false, "Unable to write Chip.\n");
                 return false;
@@ -211,5 +212,5 @@
         // We only write out a blank PHU if it's specifically requested.
         bool writeBlank = blank && hdu->blankPHU && !hdu->images; // Write a blank PHU?
-        bool writeImage = !hdu->blankPHU && hdu->images; // Write an image?
+        bool writeImage = !blank && !hdu->blankPHU && hdu->images; // Write an image?
 
         if (writeBlank || writeImage) {
@@ -232,5 +233,5 @@
         for (int i = 0; i < chips->n; i++) {
             pmChip *chip = chips->data[i];  // The chip of interest
-            if (!pmChipWrite(chip, fits, db, blank, true)) {
+            if (!pmChipWrite(chip, fits, db, false, true)) {
                 psError(PS_ERR_IO, false, "Unable to write FPA.\n");
                 return false;
