Index: /trunk/ippTools/src/bgtool.c
===================================================================
--- /trunk/ippTools/src/bgtool.c	(revision 28736)
+++ /trunk/ippTools/src/bgtool.c	(revision 28737)
@@ -311,5 +311,5 @@
     pxAddLabelSearchArgs(config,   where, "-label",              "chipRun.label",         "==");
 
-    if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) {
+    if (!psListLength(where->list)) {
         psFree(where);
         psError(PXTOOLS_ERR_CONFIG, true, "search parameters are required");
@@ -325,4 +325,5 @@
     PXOPT_LOOKUP_STR(note, config->args, "-set_note", false, false);
     PXOPT_LOOKUP_TIME(registered, config->args, "-registered", false, false);
+    PXOPT_LOOKUP_BOOL(destreaked, config->args, "-destreaked", false);
     PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     PXOPT_LOOKUP_BOOL(pretend, config->args, "-pretend", false);
@@ -343,4 +344,8 @@
     }
     psFree(where);
+
+    if (destreaked) {
+        psStringAppend(&query, " AND chipRun.magicked > 0");
+    }
 
     if (!rerun) {
@@ -361,5 +366,5 @@
             psStringAppend(&query,
                            "\nAND (chipBackgroundRun.dist_group = '%s'"
-                           " OR chipBackgroundRun.dist_group IS NULL",
+                           " OR chipBackgroundRun.dist_group IS NULL)",
                            dist_group);
         }
@@ -479,5 +484,5 @@
     }
 
-    psString query = psStringCopy("UPDATE chipBackgroundRun JOIN chipBackgroundImfile USING(chip_bg_id)");
+    psString query = psStringCopy("UPDATE chipBackgroundRun");
     bool result = pxUpdateRun(config, where, &query, "chipBackgroundRun", "chip_bg_id",
                               "chipBackgroundImfile", true);
@@ -1086,4 +1091,5 @@
     }
 
+    PXOPT_LOOKUP_BOOL(destreaked, config->args, "-destreaked", false);
     PXOPT_LOOKUP_BOOL(rerun, config->args, "-rerun", false);
     PXOPT_LOOKUP_STR(workdir, config->args, "-set_workdir", false, false);
@@ -1112,4 +1118,8 @@
     }
     psFree(where);
+
+    if (destreaked) {
+        psStringAppend(&query, " AND warpRun.magicked > 0");
+    }
 
     if (!rerun) {
Index: /trunk/ippTools/src/bgtoolConfig.c
===================================================================
--- /trunk/ippTools/src/bgtoolConfig.c	(revision 28736)
+++ /trunk/ippTools/src/bgtoolConfig.c	(revision 28737)
@@ -90,4 +90,5 @@
     psMetadataAddF32(definechipArgs, PS_LIST_TAIL, "-sun_angle_max", 0, "search by max solar angle", NAN);
     psMetadataAddStr(definechipArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search on chipRun label", NULL);
+    psMetadataAddBool(definechipArgs, PS_LIST_TAIL, "-destreaked", 0, "search for runs that have been destreaked", false);
     psMetadataAddBool(definechipArgs, PS_LIST_TAIL, "-rerun", 0, "re-run data?", false);
     psMetadataAddStr(definechipArgs, PS_LIST_TAIL, "-set_workdir", 0, "define workdir", NULL);
@@ -165,4 +166,5 @@
     psMetadataAddStr(chipArgs, PS_LIST_TAIL, "-dist_group", PS_META_DUPLICATE_OK, "search by dist_group", NULL);
     pxmagicAddArguments(chipArgs);
+    pxspaceAddArguments(chipArgs);
     psMetadataAddBool(chipArgs, PS_LIST_TAIL, "-all", 0, "search without arguments", false);
     psMetadataAddU64(chipArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0);
@@ -250,4 +252,5 @@
     psMetadataAddStr(definewarpArgs, PS_LIST_TAIL, "-warp_label", PS_META_DUPLICATE_OK, "search on warpRun label", NULL);
     psMetadataAddStr(definewarpArgs, PS_LIST_TAIL, "-chip_label", PS_META_DUPLICATE_OK, "search on chipBackgroundRun label", NULL);
+    psMetadataAddBool(definewarpArgs, PS_LIST_TAIL, "-destreaked", 0, "search for runs that have been destreaked", false);
     psMetadataAddBool(definewarpArgs, PS_LIST_TAIL, "-rerun", 0, "rerun data?", false);
     psMetadataAddStr(definewarpArgs, PS_LIST_TAIL, "-set_workdir", 0, "define workdir", NULL);
