Index: /trunk/psModules/src/camera/pmFPARead.c
===================================================================
--- /trunk/psModules/src/camera/pmFPARead.c	(revision 24057)
+++ /trunk/psModules/src/camera/pmFPARead.c	(revision 24058)
@@ -64,5 +64,5 @@
 
 // Set the "thisXXXScan" value in the readout for the appropriate image type
-static int readoutSetThisScan(pmReadout *readout, // Readout of interest
+static void readoutSetThisScan(pmReadout *readout, // Readout of interest
                               fpaReadType type, // Type of image
                               int thisScan // Starting scan number
@@ -72,15 +72,14 @@
       case FPA_READ_TYPE_IMAGE:
         readout->thisImageScan = thisScan;
-        return readout->lastImageScan;
+        return;
       case FPA_READ_TYPE_MASK:
         readout->thisMaskScan = thisScan;
-        return readout->lastMaskScan;
+        return;
       case FPA_READ_TYPE_VARIANCE:
         readout->thisVarianceScan = thisScan;
-        return readout->lastVarianceScan;
+        return;
       default:
         psAbort("Unknown read type: %x\n", type);
     }
-    return false;
 }
 
@@ -103,5 +102,5 @@
 
 // Set the "lastXXXScan" value in the readout for the appropriate image type
-static int readoutSetLastScan(pmReadout *readout, // Readout of interest
+static void readoutSetLastScan(pmReadout *readout, // Readout of interest
                               fpaReadType type, // Type of image
                               int lastScan // Last scan number
@@ -111,15 +110,14 @@
       case FPA_READ_TYPE_IMAGE:
         readout->lastImageScan = lastScan;
-        return readout->lastImageScan;
+        return;
       case FPA_READ_TYPE_MASK:
         readout->lastMaskScan = lastScan;
-        return readout->lastMaskScan;
+        return;
       case FPA_READ_TYPE_VARIANCE:
         readout->lastVarianceScan = lastScan;
-        return readout->lastVarianceScan;
+        return;
       default:
         psAbort("Unknown read type: %x\n", type);
     }
-    return false;
 }
 
@@ -592,4 +590,5 @@
     }
 
+    int origThisScan = thisScan;        // Original value of thisScan (starting point for read)
     if (thisScan == 0) {
         overlap = 0;
@@ -617,8 +616,8 @@
         }
     }
-
-    // Determine the number of scans to read
-    int lastScan = readoutSetLastScan(readout, type, thisScan + numScans);
+    int lastScan = origThisScan + numScans; // Last scan to read
+
     readoutSetThisScan(readout, type, thisScan);
+    readoutSetLastScan(readout, type, lastScan);
 
     // Blow away existing data.
