Index: trunk/pswarp/src/pswarpMapGrid.c
===================================================================
--- trunk/pswarp/src/pswarpMapGrid.c	(revision 10958)
+++ trunk/pswarp/src/pswarpMapGrid.c	(revision 12505)
@@ -8,12 +8,15 @@
     int j, nj;
 
+    // XXX I was trying to match the grids too closely
     // split the difference of the remainder
-    int xMin = 0.5*(src->image->numCols % nXpix);
-    int yMin = 0.5*(src->image->numRows % nYpix);
-
-    int nXpts = src->image->numCols / nXpix;
-    if (src->image->numCols % nXpix == 0) nXpts ++;
-    int nYpts = src->image->numRows / nYpix;
-    if (src->image->numRows % nYpix == 0) nYpts ++;
+    // int xMin = 0.5*(src->image->numCols % nXpix);
+    // int yMin = 0.5*(src->image->numRows % nYpix);
+    int xMin = 0;
+    int yMin = 0;
+
+    int nXpts = src->image->numCols / nXpix + 1;
+    if (src->image->numCols % nXpix) nXpts ++;
+    int nYpts = src->image->numRows / nYpix + 1;
+    if (src->image->numRows % nYpix) nYpts ++;
 
     pswarpMapGrid *grid = pswarpMapGridAlloc (nXpts, nYpts);
@@ -39,7 +42,12 @@
 }
 
-bool pswarpMapGridNextGrid (pswarpMapGrid *grid, int gridX, int gridY, int *nextX, int *nextY) {
+bool pswarpMapGridNextGrid_X (pswarpMapGrid *grid, int gridX, int *nextX) {
 
     *nextX = gridX*grid->nXpix + grid->xMin + 0.5*grid->nXpix;
+    return true;
+}
+
+bool pswarpMapGridNextGrid_Y (pswarpMapGrid *grid, int gridY, int *nextY) {
+
     *nextY = gridY*grid->nYpix + grid->yMin + 0.5*grid->nYpix;
     return true;
