Index: trunk/psModules/src/camera/pmFPARead.c
===================================================================
--- trunk/psModules/src/camera/pmFPARead.c	(revision 7278)
+++ trunk/psModules/src/camera/pmFPARead.c	(revision 7311)
@@ -35,5 +35,5 @@
     if (psRegionIsBad(*trimsec)) {
         psString regionString = psRegionToString(*trimsec);
-        psError(PS_ERR_IO, true, "Invalid trim section: %s\n", regionString);
+        psError(PS_ERR_UNKNOWN, true, "Invalid trim section: %s\n", regionString);
         psFree(regionString);
         psFree(readout);
@@ -319,9 +319,12 @@
     }
     if (!hdu->images && !pmHDURead(hdu, fits)) {
-        psError(PS_ERR_IO, false, "Unable to read HDU for cell.\n");
-        return false;
-    }
-
-    pmConceptsReadCell(cell, PM_CONCEPT_SOURCE_HEADER, false, NULL);
+        psError(PS_ERR_UNKNOWN, false, "Unable to read HDU for cell.\n");
+        return false;
+    }
+
+    if (!pmConceptsReadCell(cell, PM_CONCEPT_SOURCE_HEADER, false, NULL)) {
+        psError(PS_ERR_UNKNOWN, false, "Failed to read concepts for cell");
+        return false;
+    }
 
     // Having read the cell, we now have to cut it up
@@ -397,5 +400,5 @@
         pmConceptsReadFPA(fpa, PM_CONCEPT_SOURCE_HEADER, NULL);
     } else {
-        psLogMsg(__func__, PS_LOG_WARN, "Unable to read any chips in FPA.\n");
+        psError(PS_ERR_UNKNOWN, false, "Unable to read any chips in FPA");
     }
 
