Index: /trunk/ippTools/src/dettool.c
===================================================================
--- /trunk/ippTools/src/dettool.c	(revision 7352)
+++ /trunk/ippTools/src/dettool.c	(revision 7353)
@@ -1432,4 +1432,6 @@
     }
 
+    psFree(rawImfiles);
+
     if (!found) {
         psError(PS_ERR_UNKNOWN, true,
@@ -1449,7 +1451,10 @@
 
     if (!detResidImfileAnalysisInsertObject(config->dbh, residImfile)) {
-            psError(PS_ERR_UNKNOWN, false, "database error");
-            return false;
-    }
+        psError(PS_ERR_UNKNOWN, false, "database error");
+        psFree(residImfile);
+        return false;
+    }
+
+    psFree(residImfile);
 
     return true;
@@ -1459,4 +1464,33 @@
 {
     PS_ASSERT_PTR_NON_NULL(config, false);
+
+    // no options are required... use the default where statement
+    psArray *residImfiles = detResidImfileAnalysisSelectRowObjects(config->dbh,
+            config->where, 0);
+    if (!residImfiles) {
+        psError(PS_ERR_UNKNOWN, false, "no detResidImfileAnalysis rows found");
+        return false;
+    }
+
+    if (psArrayLength(residImfiles)) {
+        // print imfile list
+        psMetadata *output = psMetadataAlloc();
+        for (long i = 0; i < psArrayLength(residImfiles); i++) {
+            psMetadata *md = detResidImfileAnalysisMetadataFromObject(
+                    residImfiles->data[i]);
+            psMetadataAddMetadata(
+                output, PS_LIST_TAIL, "detResidImfileAnalysis",
+                PS_META_DUPLICATE_OK, NULL, md
+            );
+        }
+
+        psString str = psMetadataConfigFormat(output); 
+        psFree(output);
+        fprintf(stdout, "%s\n", str);
+        psFree(str);
+    }
+
+    psFree(residImfiles);
+
     return true;
 }
