Index: trunk/ippTools/src/magictool.c
===================================================================
--- trunk/ippTools/src/magictool.c	(revision 18680)
+++ trunk/ippTools/src/magictool.c	(revision 18681)
@@ -235,5 +235,5 @@
     psString insert = pxDataGet("magictool_definebyquery_insert.sql"); // Insert query
 
-    // iterate over array of grouped warp_ids
+    psArray *list = psArrayAllocEmpty(16); // List of runs, to print
     for (long i = 0; i < psArrayLength(output); i++) {
         psMetadata *row = output->data[i]; // Row of interest
@@ -251,4 +251,5 @@
             psFree(insert);
             psFree(output);
+            psFree(list);
             if (!psDBRollback(config->dbh)) {
                 psError(PS_ERR_UNKNOWN, false, "database error");
@@ -260,14 +261,5 @@
         run->magic_id = magic_id;
 
-        if (!magicRunPrintObject(stdout, run, !simple)) {
-            psError(PS_ERR_UNKNOWN, false, "failed to print object");
-            psFree(run);
-            psFree(insert);
-            psFree(output);
-            if (!psDBRollback(config->dbh)) {
-                psError(PS_ERR_UNKNOWN, false, "database error");
-            }
-            return false;
-        }
+        psArrayAdd(list, list->n, run);
         psFree(run);
 
@@ -284,4 +276,5 @@
             psFree(insert);
             psFree(output);
+            psFree(list);
             if (!psDBRollback(config->dbh)) {
                 psError(PS_ERR_UNKNOWN, false, "database error");
@@ -297,4 +290,10 @@
     }
     psFree(output);
+
+    if (!magicRunPrintObjects(stdout, list, !simple)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print object");
+        psFree(list);
+        return false;
+    }
 
     return true;
