Index: trunk/psModules/src/camera/pmFPACopy.c
===================================================================
--- trunk/psModules/src/camera/pmFPACopy.c	(revision 12838)
+++ trunk/psModules/src/camera/pmFPACopy.c	(revision 13034)
@@ -211,4 +211,17 @@
         if (mdok && trimsec && !psRegionIsNaN(*trimsec)) {
             *trimsec = psImageBinningSetRuffRegion(binning, *trimsec);
+	    // force integer pixels : truncate x0, roundup x1:
+	    trimsec->x0 = (int)trimsec->x0;
+	    if (trimsec->x1 > (int)trimsec->x1) {
+		trimsec->x1 = (int)trimsec->x1 + 1;
+	    } else {
+		trimsec->x1 = (int)trimsec->x1;
+	    }		
+	    trimsec->y0 = (int)trimsec->y0;
+	    if (trimsec->y1 > (int)trimsec->y1) {
+		trimsec->y1 = (int)trimsec->y1 + 1;
+	    } else {
+		trimsec->y1 = (int)trimsec->y1;
+	    }		
         }
         psList *biassecs = psMetadataLookupPtr(&mdok, target->concepts, "CELL.BIASSEC"); // The bias sections
@@ -219,4 +232,17 @@
                 if (!psRegionIsNaN(*biassec)) {
                     *biassec = psImageBinningSetRuffRegion(binning, *biassec);
+		    // force integer pixels : truncate x0, roundup x1:
+		    biassec->x0 = (int)biassec->x0;
+		    if (biassec->x1 > (int)biassec->x1) {
+			biassec->x1 = (int)biassec->x1 + 1;
+		    } else {
+			biassec->x1 = (int)biassec->x1;
+		    }		
+		    biassec->y0 = (int)biassec->y0;
+		    if (biassec->y1 > (int)biassec->y1) {
+			biassec->y1 = (int)biassec->y1 + 1;
+		    } else {
+			biassec->y1 = (int)biassec->y1;
+		    }		
                 }
             }
