Index: /trunk/psModules/src/concepts/pmConceptsAverage.c
===================================================================
--- /trunk/psModules/src/concepts/pmConceptsAverage.c	(revision 12649)
+++ /trunk/psModules/src/concepts/pmConceptsAverage.c	(revision 12650)
@@ -39,4 +39,5 @@
     int readdir      = 0;               // Cell read direction
     int xBin = 0, yBin = 0;             // Binning
+    int x0 = 0, y0 = 0;                 // Offset
 
     int nCells = 0;                     // Number of cells;
@@ -60,23 +61,35 @@
             xBin    = psMetadataLookupS32(NULL, cell->concepts, "CELL.XBIN");
             yBin    = psMetadataLookupS32(NULL, cell->concepts, "CELL.YBIN");
+            x0      = psMetadataLookupS32(NULL, cell->concepts, "CELL.X0");
+            y0      = psMetadataLookupS32(NULL, cell->concepts, "CELL.Y0");
         } else {
             if (timeSys != psMetadataLookupS32(NULL, cell->concepts, "CELL.TIMESYS")) {
-                psLogMsg(__func__, PS_LOG_ERROR, "Differing time systems in use: %d vs %d\n", timeSys,
+                psLogMsg(__func__, PS_LOG_ERROR, "Differing CELL.TIMESYS in use: %d vs %d\n", timeSys,
                          psMetadataLookupS32(NULL, cell->concepts, "CELL.TIMESYS"));
                 success = false;
             }
             if (readdir != psMetadataLookupS32(NULL, cell->concepts, "CELL.READDIR")) {
-                psLogMsg(__func__, PS_LOG_ERROR, "Differing cell read directions in use: %d vs %d\n", readdir,
+                psLogMsg(__func__, PS_LOG_ERROR, "Differing CELL.READDIR in use: %d vs %d\n", readdir,
                          psMetadataLookupS32(NULL, cell->concepts, "CELL.READDIR"));
                 success = false;
             }
             if (xBin != psMetadataLookupS32(NULL, cell->concepts, "CELL.XBIN")) {
-                psLogMsg(__func__, PS_LOG_ERROR, "Differing cell x binnings in use: %d vs %d\n", xBin,
+                psLogMsg(__func__, PS_LOG_ERROR, "Differing CELL.XBIN in use: %d vs %d\n", xBin,
                          psMetadataLookupS32(NULL, cell->concepts, "CELL.XBIN"));
                 success = false;
             }
             if (yBin != psMetadataLookupS32(NULL, cell->concepts, "CELL.YBIN")) {
-                psLogMsg(__func__, PS_LOG_ERROR, "Differing cell y binnings in use: %d vs %d\n", yBin,
+                psLogMsg(__func__, PS_LOG_ERROR, "Differing CELL.YBIN in use: %d vs %d\n", yBin,
                          psMetadataLookupS32(NULL, cell->concepts, "CELL.YBIN"));
+                success = false;
+            }
+            if (x0 != psMetadataLookupS32(NULL, cell->concepts, "CELL.X0")) {
+                psLogMsg(__func__, PS_LOG_ERROR, "Differing CELL.X0 in use: %d vs %d\n", x0,
+                         psMetadataLookupS32(NULL, cell->concepts, "CELL.X0"));
+                success = false;
+            }
+            if (y0 != psMetadataLookupS32(NULL, cell->concepts, "CELL.Y0")) {
+                psLogMsg(__func__, PS_LOG_ERROR, "Differing CELL.Y0 in use: %d vs %d\n", y0,
+                         psMetadataLookupS32(NULL, cell->concepts, "CELL.Y0"));
                 success = false;
             }
@@ -110,4 +123,6 @@
     MD_UPDATE(target->concepts, "CELL.XBIN", S32, xBin);
     MD_UPDATE(target->concepts, "CELL.YBIN", S32, yBin);
+    MD_UPDATE(target->concepts, "CELL.X0", S32, x0);
+    MD_UPDATE(target->concepts, "CELL.Y0", S32, y0);
 
     // CELL.TIME needs special care
