Index: /trunk/psphot/src/psphotImageMedian.c
===================================================================
--- /trunk/psphot/src/psphotImageMedian.c	(revision 11383)
+++ /trunk/psphot/src/psphotImageMedian.c	(revision 11384)
@@ -1,4 +1,3 @@
 # include "psphot.h"
-# define TESTSAVE
 
 // generate the median in NxN boxes, clipping heavily
@@ -101,4 +100,5 @@
     }
 
+    // we have 4 possibilities: (INTERNAL or I/O file) and (exists or not) 
     // select model pixels (from output background model file, or create internal file)
     file = psMetadataLookupPtr (&status, config->files, "PSPHOT.BACKMDL");
@@ -107,13 +107,17 @@
         model = pmFPAfileDefineInternal (config->files, "PSPHOT.BACKMDL", nx, ny, PS_TYPE_F32);
     } else {
-	// we are using PSPHOT.BACKMDL as an I/O file: select readout or create
-	model = pmFPAviewThisReadout (view, file->fpa);
-	if (model == NULL) {
-	    // readout does not yet exist: create from input
-	    pmFPAfileCopyStructureView (file->fpa, inFPA, DX, DY, view);
+	if (file->mode == PM_FPA_MODE_INTERNAL) {
+	    model = file->readout;
+	} else {
+	    // we are using PSPHOT.BACKMDL as an I/O file: select readout or create
 	    model = pmFPAviewThisReadout (view, file->fpa);
-	    if ((nx != model->image->numCols) || (ny != model->image->numRows)) {
-		psError (PSPHOT_ERR_PROG, true, "inconsistent sizes for model dimensions");
-		return false;
+	    if (model == NULL) {
+		// readout does not yet exist: create from input
+		pmFPAfileCopyStructureView (file->fpa, inFPA, DX, DY, view);
+		model = pmFPAviewThisReadout (view, file->fpa);
+		if ((nx != model->image->numCols) || (ny != model->image->numRows)) {
+		    psError (PSPHOT_ERR_PROG, true, "inconsistent sizes for model dimensions");
+		    return false;
+		}
 	    }
 	}
