Index: trunk/psModules/src/camera/pmFPARead.c
===================================================================
--- trunk/psModules/src/camera/pmFPARead.c	(revision 8246)
+++ trunk/psModules/src/camera/pmFPARead.c	(revision 8418)
@@ -81,5 +81,6 @@
 
 // Read a component of a readout
-psImage *readoutReadComponent(psFits *fits, // FITS file from which to read
+psImage *readoutReadComponent(psImage *image, // Image into which to read
+                              psFits *fits, // FITS file from which to read
                               const psRegion *region, // Region to read
                               int readdir, // Read direction (1=rows, 2=cols)
@@ -128,5 +129,5 @@
     psTrace("psModules.camera", 5, "Reading section [%.0f:%.0f,%.0f:%.0f]\n",
             toRead.x0, toRead.x1, toRead.y0, toRead.y1);
-    psImage *image = psFitsReadImage(fits, toRead, z); // Desired pixels
+    image = psFitsReadImageBuffer(image, fits, toRead, z); // Desired pixels
     psTrace("psModules.camera", 7, "Image is %dx%d\n", image->numCols, image->numRows);
 
@@ -278,6 +279,9 @@
     // Blow away existing data.
     // Do this before returning, so that we're not returning data from a previous read
+    #if 1
     psFree(readout->image);
     readout->image = NULL;
+    #endif
+
     while (readout->bias->n > 0) {
         psListRemove(readout->bias, PS_LIST_HEAD);
@@ -295,5 +299,6 @@
 
     // Get the new the trim section
-    readout->image = readoutReadComponent(fits, trimsec, readdir, offset, upper, z, bad); // The image
+    readout->image = readoutReadComponent(readout->image, fits, trimsec, readdir,
+                                          offset, upper, z, bad); // The image
 
     // Get the new bias sections
@@ -301,5 +306,5 @@
     psRegion *biassec = NULL;           // Bias section from iteration
     while ((biassec = psListGetAndIncrement(biassecsIter))) {
-        psImage *bias = readoutReadComponent(fits, biassec, readdir, offset, upper, z, bad); // The bias
+        psImage *bias = readoutReadComponent(NULL, fits, biassec, readdir, offset, upper, z, bad); // The bias
         psListAdd(readout->bias, PS_LIST_TAIL, bias);
         psFree(bias);                   // Drop reference
