Index: trunk/ippTools/src/vptool.c
===================================================================
--- trunk/ippTools/src/vptool.c	(revision 32764)
+++ trunk/ippTools/src/vptool.c	(revision 32770)
@@ -178,13 +178,4 @@
     PXOPT_LOOKUP_S64(exp_id, config->args, "-exp_id", false, false);
 
-    psMetadata *where = psMetadataAlloc();
-    pxchipGetSearchArgs (config, where); // rawExp only
-    pxAddLabelSearchArgs (config, where, "-label", "newExp.label", "LIKE"); // define using newExp label
-
-    if (!psListLength(where->list)) {
-        psFree(where);
-        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
-        return false;
-    }
 
     PXOPT_LOOKUP_STR(label, config->args, "-set_label", true, false);
@@ -199,4 +190,14 @@
     PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
 
+    psMetadata *where = psMetadataAlloc();
+    pxchipGetSearchArgs (config, where); // rawExp only
+    pxAddLabelSearchArgs (config, where, "-label", "newExp.label", "="); // define using newExp label
+
+    if (!psListLength(where->list)) {
+        psFree(where);
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
+        return false;
+    }
+
     // find the exp_id of all the exposures that we want to queue up.
     psString query = pxDataGet("vptool_find_rawexp.sql");
@@ -214,5 +215,5 @@
 
     if (!rerun) {
-      psStringAppend(&query, "AND vp_id IS NULL");
+      psStringAppend(&query, "\n  AND vp_id IS NULL\n  AND (vpRun.label = '%s' OR vpRun.label IS NULL)", label);
     }
     
