Index: trunk/psModules/src/camera/pmFPAConstruct.c
===================================================================
--- trunk/psModules/src/camera/pmFPAConstruct.c	(revision 27746)
+++ trunk/psModules/src/camera/pmFPAConstruct.c	(revision 27762)
@@ -133,7 +133,12 @@
     assert(hdu);
 
-    if (!fpa->hdu) {
-        fpa->hdu = psMemIncrRefCounter(hdu);
-    }
+    if (fpa->hdu) {
+        // Something's already here
+        if (fpa->hdu != hdu) {
+            psError(PS_ERR_IO, true, "Unable to add HDU since FPA already has one.\n");
+        }
+        return false;
+    }
+    fpa->hdu = psMemIncrRefCounter(hdu);
     pmFPASetFileStatus(fpa, true);
 
@@ -150,6 +155,11 @@
 
     if (chip->hdu) {
-        chip->hdu = psMemIncrRefCounter(hdu);
-    }
+        // Something's already here
+        if (chip->hdu != hdu) {
+            psError(PS_ERR_IO, true, "Unable to add HDU since chip already has one.\n");
+        }
+        return false;
+    }
+    chip->hdu = psMemIncrRefCounter(hdu);
     pmChipSetFileStatus(chip, true);
 
@@ -166,6 +176,11 @@
 
     if (cell->hdu) {
-        cell->hdu = psMemIncrRefCounter(hdu);
-    }
+        // Something's already here
+        if (cell->hdu != hdu) {
+            psError(PS_ERR_IO, true, "Unable to add HDU since cell already has one.\n");
+        }
+        return false;
+    }
+    cell->hdu = psMemIncrRefCounter(hdu);
     pmCellSetFileStatus(cell, true);
 
