Index: trunk/psModules/src/camera/pmFPAfileDefine.c
===================================================================
--- trunk/psModules/src/camera/pmFPAfileDefine.c	(revision 15940)
+++ trunk/psModules/src/camera/pmFPAfileDefine.c	(revision 15946)
@@ -19,4 +19,6 @@
 #include "pmFPAfile.h"
 #include "pmFPAConstruct.h"
+
+#include "pmConcepts.h"
 
 // Parse an option from a metadata, returning the appropriate integer value
@@ -1016,4 +1018,8 @@
     file->xBin = xBin;
     file->yBin = yBin;
+
+    // inherit the concepts from the src fpa:
+    pmFPACopyConcepts(file->fpa, file->src);
+    
     return file;
 }
@@ -1120,4 +1126,7 @@
     file->src = psMemIncrRefCounter(src); // inherit output elements from this source pmFPA
 
+    // inherit the concepts from the src fpa:
+    pmFPACopyConcepts(file->fpa, file->src);
+
     file->mosaicLevel = PM_FPA_LEVEL_CHIP; // don't do any I/O on this at a lower level
 
@@ -1252,8 +1261,13 @@
     // XXX we have an inconsistency in this calculation here and in pmFPACopy
     // XXX use the psImageBinning functions to set the output image size
-    pmFPAfileCopyStructureView (file->fpa, fpa, binning->nXbin, binning->nYbin, view);
-    readout = pmFPAviewThisReadout (view, file->fpa);
-    PS_ASSERT (binning->nXruff == readout->image->numCols, false);
-    PS_ASSERT (binning->nYruff == readout->image->numRows, false);
+    if (binning == NULL) {
+      pmFPAfileCopyStructureView (file->fpa, fpa, 1, 1, view);
+      readout = pmFPAviewThisReadout (view, file->fpa);
+    } else {
+      pmFPAfileCopyStructureView (file->fpa, fpa, binning->nXbin, binning->nYbin, view);
+      readout = pmFPAviewThisReadout (view, file->fpa);
+      PS_ASSERT (binning->nXruff == readout->image->numCols, false);
+      PS_ASSERT (binning->nYruff == readout->image->numRows, false);
+    }
   }
 
