Index: trunk/pswarp/src/pswarpTransformSources.c
===================================================================
--- trunk/pswarp/src/pswarpTransformSources.c	(revision 25758)
+++ trunk/pswarp/src/pswarpTransformSources.c	(revision 26896)
@@ -31,14 +31,20 @@
 
     // Transform sources
-    psArray *inSources = psMetadataLookupPtr(&mdok, input->analysis, "PSPHOT.SOURCES"); // Sources in source
+    pmDetections *inDetections = psMetadataLookupPtr(&mdok, input->analysis, "PSPHOT.DETECTIONS"); // Sources in source
+    if (!inDetections) return true;
+    psArray *inSources = inDetections->allSources;
     if (!inSources) return true;
 
     pswarpMapGrid *sourceGrid = pswarpMapGridFromImage(output, input, nGridX, nGridY); // Grid for sources
 
-    psArray *outSources = psMemIncrRefCounter(psMetadataLookupPtr(&mdok, output->analysis, "PSPHOT.SOURCES")); // Target sources
+    pmDetections *outDetections = psMemIncrRefCounter(psMetadataLookupPtr(&mdok, output->analysis, "PSPHOT.DETECTIONS")); // Target sources
+    if (!outDetections) {
+        outDetections = pmDetectionsAlloc();
+        psMetadataAddPtr(output->analysis, PS_LIST_TAIL, "PSPHOT.DETECTIONS", PS_DATA_ARRAY, "Warped sources", outDetections);
+    }
+    psArray *outSources = outDetections->allSources;
     if (!outSources) {
-        outSources = psArrayAllocEmpty(SOURCE_ARRAY_BUFFER);
-        psMetadataAddPtr(output->analysis, PS_LIST_TAIL, "PSPHOT.SOURCES", PS_DATA_ARRAY,
-                         "Warped sources", outSources);
+	outDetections->allSources = psArrayAllocEmpty(SOURCE_ARRAY_BUFFER);
+	outSources = outDetections->allSources;
     }
 
@@ -57,5 +63,5 @@
             psError(PS_ERR_UNKNOWN, false, "Unable to get grid coordinates for source at %f,%f\n",
                     xIn, yIn);
-            psFree(outSources);
+            psFree(outDetections);
             psFree(sourceGrid);
             return false;
@@ -72,5 +78,5 @@
             psError(PS_ERR_UNKNOWN, false, "Unable to transform coordinates for source at %f,%f\n",
                     xIn, yIn);
-            psFree(outSources);
+            psFree(outDetections);
             psFree(sourceGrid);
             return false;
@@ -142,5 +148,5 @@
     }
     psFree(sourceGrid);
-    psFree(outSources);             // Drop reference
+    psFree(outDetections);             // Drop reference
     return true;
 }
