Index: /trunk/psLib/src/imageops/psImageBinning.c
===================================================================
--- /trunk/psLib/src/imageops/psImageBinning.c	(revision 20764)
+++ /trunk/psLib/src/imageops/psImageBinning.c	(revision 20765)
@@ -8,6 +8,6 @@
  *  @author Eugene Magnier, IfA
  *
- *  @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2007-11-08 03:10:30 $
+ *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2008-11-17 02:38:07 $
  *
  *  Copyright 2007 Institute for Astronomy, University of Hawaii
@@ -35,4 +35,14 @@
     psMemSetDeallocator(binning, (psFreeFunc)psImageBinningFree);
 
+    binning->nXfine = 0;
+    binning->nYfine = 0;
+    binning->nXruff = 0;
+    binning->nYruff = 0;
+    binning->nXbin = 0;
+    binning->nYbin = 0;
+    binning->nXoff = 0;
+    binning->nYoff = 0;
+    binning->nXskip = 0;
+    binning->nYskip = 0;
     return binning;
 }
@@ -143,8 +153,8 @@
     psRegion fineRegion;
 
-    fineRegion.x0 = ruffRegion.x0 * binning->nXbin;
-    fineRegion.x1 = ruffRegion.x1 * binning->nXbin;
-    fineRegion.y0 = ruffRegion.y0 * binning->nYbin;
-    fineRegion.y1 = ruffRegion.y1 * binning->nYbin;
+    fineRegion.x0 = ruffRegion.x0 * binning->nXbin + binning->nXskip;
+    fineRegion.x1 = ruffRegion.x1 * binning->nXbin + binning->nXskip;
+    fineRegion.y0 = ruffRegion.y0 * binning->nYbin + binning->nYskip;
+    fineRegion.y1 = ruffRegion.y1 * binning->nYbin + binning->nYskip;
     return fineRegion;
 }
@@ -154,8 +164,8 @@
     psRegion ruffRegion;
 
-    ruffRegion.x0 = fineRegion.x0 / binning->nXbin;
-    ruffRegion.x1 = fineRegion.x1 / binning->nXbin;
-    ruffRegion.y0 = fineRegion.y0 / binning->nYbin;
-    ruffRegion.y1 = fineRegion.y1 / binning->nYbin;
+    ruffRegion.x0 = (fineRegion.x0 - binning->nXskip) / binning->nXbin;
+    ruffRegion.x1 = (fineRegion.x1 - binning->nXskip) / binning->nXbin;
+    ruffRegion.y0 = (fineRegion.y0 - binning->nYskip) / binning->nYbin;
+    ruffRegion.y1 = (fineRegion.y1 - binning->nYskip) / binning->nYbin;
     return ruffRegion;
 }
