Index: /branches/eam_02_branch/psModules/src/camera/pmFPACopy.c
===================================================================
--- /branches/eam_02_branch/psModules/src/camera/pmFPACopy.c	(revision 13030)
+++ /branches/eam_02_branch/psModules/src/camera/pmFPACopy.c	(revision 13031)
@@ -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;
+		    }		
                 }
             }
Index: /branches/eam_02_branch/psModules/src/concepts/pmConceptsUpdate.c
===================================================================
--- /branches/eam_02_branch/psModules/src/concepts/pmConceptsUpdate.c	(revision 13030)
+++ /branches/eam_02_branch/psModules/src/concepts/pmConceptsUpdate.c	(revision 13031)
@@ -44,4 +44,17 @@
 	    psRegion *trimsec = psMetadataLookupPtr(NULL, cell->concepts, "CELL.TRIMSEC"); // Trim section
 	    *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;
+	    }		
 	    psMetadataRemoveKey(cell->concepts, "CELL.TRIMSEC.UPDATE");
         }
@@ -54,4 +67,17 @@
 	    while ((biassec = psListGetAndIncrement(biassecsIter))) {
 		*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;
+		}		
 	    }
 	    psFree(biassecsIter);
