Index: trunk/psModules/src/camera/pmHDUGenerate.c
===================================================================
--- trunk/psModules/src/camera/pmHDUGenerate.c	(revision 8581)
+++ trunk/psModules/src/camera/pmHDUGenerate.c	(revision 8582)
@@ -190,10 +190,11 @@
     psListIteratorSet(cellsIter, PS_LIST_HEAD);
     while ((cell = psListGetAndIncrement(cellsIter))) {
-        psRegion *trimsec = psMetadataLookupPtr(&mdok, cell->concepts, "CELL.TRIMSEC"); // Trim section
-        if (!mdok || !trimsec) {
+        psMetadataItem *trimsecItem = psMetadataLookup(cell->concepts, "CELL.TRIMSEC"); // Item with trimsec
+        if (!trimsecItem || trimsecItem->type != PS_DATA_REGION) {
             psLogMsg(__func__, PS_LOG_WARN, "CELL.TRIMSEC has not been initialised in cell --- "
                      "ignored.\n");
             continue;
         }
+        psRegion *trimsec = trimsecItem->data.V; // Trim section
 
         int cellreaddir = psMetadataLookupS32(&mdok, cell->concepts, "CELL.READDIR"); // Read direction
@@ -215,6 +216,8 @@
             continue;
         }
-        psFree(trimsec);                // Drop old reference
-        trimsec = sectionForImage(&position, image, cellreaddir); // New reference
+        // New reference
+        trimsec = sectionForImage(&position, image, cellreaddir);
+        psFree(trimsecItem->data.V);
+        trimsecItem->data.V = trimsec;
     }
 
