Index: trunk/ippTools/src/dettool.c
===================================================================
--- trunk/ippTools/src/dettool.c	(revision 8353)
+++ trunk/ippTools/src/dettool.c	(revision 8354)
@@ -1083,14 +1083,51 @@
     PS_ASSERT_PTR_NON_NULL(config, false);
 
-    // select detRun.det_type
-    // select detProcessedImfile
-    psString query = psStringCopy(
-        " SELECT"
-        "   detRun.det_type,"
-        "   detProcessedImfile.*"
-        " FROM detProcessedImfile"
-        " JOIN detRun"
-        " ON detProcessedImfile.det_id = detRun.position"
+    bool unmask = false;
+    {
+        bool status = false;
+        unmask = psMetadataLookupBool(&status, config->args, "-unmask");
+        if (!status) {
+            psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -unmask");
+            return false;
+        }
+    }
+
+    psString query = NULL;
+    if (unmask) {
+        // select detRun.det_type
+        // select detProcessedImfile.*
+        query = psStringCopy(
+            " SELECT"
+            "   detRun.det_type,"
+            "   detProcessedImfile.*"
+            " FROM detProcessedImfile"
+            " JOIN detRun"
+            "   ON detProcessedImfile.det_id = detRun.position"
         ); 
+    } else {
+        // select detRun.det_type
+        // select detProcessedImfile.*
+        // where
+        // det_id is not in detStackedImfile
+        // iteration is not in detStackedImfile
+        // detProcessedImfile.exp_id is not in detStackedImfile
+        // detProcessedImfile.class_id is not in detStackedImfile
+        query = psStringCopy(
+            " SELECT"
+            "   detRun.det_type,"
+            "   detProcessedImfile.*"
+            " FROM detProcessedImfile"
+            " JOIN detRun"
+            "   ON detProcessedImfile.det_id = detRun.position"
+            " LEFT JOIN detStackedImfile"
+            "   ON detRun.position = detStackedImfile.det_id"
+            "   AND detRun.iteration = detStackedImfile.iteration"
+            "   AND detProcessedImfile.class_id = detStackedImfile.class_id"
+            " WHERE"
+            "   detStackedImfile.det_id IS NULL"
+            "   AND detStackedImfile.iteration IS NULL"
+            "   AND detStackedImfile.class_id IS NULL"
+        ); 
+    }
 
     // XXX search criterian are disabled
@@ -1687,5 +1724,4 @@
         ); 
 
-
     // XXX does it make sens to accept any search params?
 #if 0
