Index: trunk/psModules/src/astrom/pmFPAWrite.c
===================================================================
--- trunk/psModules/src/astrom/pmFPAWrite.c	(revision 6896)
+++ trunk/psModules/src/astrom/pmFPAWrite.c	(revision 6982)
@@ -76,11 +76,13 @@
                 )
 {
-    pmConceptsWriteCell(cell, PM_CONCEPT_SOURCE_HEADER | PM_CONCEPT_SOURCE_CAMERA | PM_CONCEPT_SOURCE_DEFAULTS,
-                        false, NULL);
-
     pmHDU *hdu = cell->hdu;             // The HDU
-    if (hdu && ((!pixels && hdu->phu) || pixels) && !pmHDUWrite(hdu, fits)) {
-        psError(PS_ERR_IO, false, "Unable to write HDU for Chip.\n");
-        return false;
+    if (hdu && ((!pixels && hdu->phu) || pixels)) {
+        bool status = pmConceptsWriteCell(cell, PM_CONCEPT_SOURCE_HEADER | PM_CONCEPT_SOURCE_CAMERA |
+                                          PM_CONCEPT_SOURCE_DEFAULTS, false, NULL);
+        status &= pmHDUWrite(hdu, fits);
+        if (!status) {
+            psError(PS_ERR_IO, false, "Unable to write HDU for Chip.\n");
+            return false;
+        }
     }
 
@@ -95,11 +97,13 @@
                 )
 {
-    pmConceptsWriteChip(chip, PM_CONCEPT_SOURCE_HEADER | PM_CONCEPT_SOURCE_CAMERA | PM_CONCEPT_SOURCE_DEFAULTS,
-                        false, NULL);
-
     pmHDU *hdu = chip->hdu;             // The HDU
-    if (hdu && ((!pixels && hdu->phu) || pixels) && !pmHDUWrite(hdu, fits)) {
-        psError(PS_ERR_IO, false, "Unable to write HDU for Chip.\n");
-        return false;
+    if (hdu && ((!pixels && hdu->phu) || pixels)) {
+        bool status = pmConceptsWriteChip(chip, PM_CONCEPT_SOURCE_HEADER | PM_CONCEPT_SOURCE_CAMERA |
+                                          PM_CONCEPT_SOURCE_DEFAULTS, false, NULL);
+        status &= pmHDUWrite(hdu, fits);
+        if (!status) {
+            psError(PS_ERR_IO, false, "Unable to write HDU for Chip.\n");
+            return false;
+        }
     }
 
@@ -125,11 +129,13 @@
                )
 {
-    pmConceptsWriteFPA(fpa, PM_CONCEPT_SOURCE_HEADER | PM_CONCEPT_SOURCE_CAMERA | PM_CONCEPT_SOURCE_DEFAULTS,
-                       NULL);
-
     pmHDU *hdu = fpa->hdu;              // The HDU
-    if (hdu && ((!pixels && hdu->phu) || pixels) && !pmHDUWrite(hdu, fits)) {
-        psError(PS_ERR_IO, false, "Unable to write HDU for FPA.\n");
-        return false;
+    if (hdu && ((!pixels && hdu->phu) || pixels)) {
+        bool status = pmConceptsWriteFPA(fpa, PM_CONCEPT_SOURCE_HEADER | PM_CONCEPT_SOURCE_CAMERA |
+                                         PM_CONCEPT_SOURCE_DEFAULTS, NULL);
+        status &= pmHDUWrite(hdu, fits);
+        if (!status) {
+            psError(PS_ERR_IO, false, "Unable to write HDU for FPA.\n");
+            return false;
+        }
     }
 
