Index: /trunk/ippTools/share/chiptool_find_rawexp.sql
===================================================================
--- /trunk/ippTools/share/chiptool_find_rawexp.sql	(revision 35571)
+++ /trunk/ippTools/share/chiptool_find_rawexp.sql	(revision 35572)
@@ -6,5 +6,5 @@
 FROM rawExp
 JOIN newExp using (exp_id)
-LEFT JOIN chipRun USING (exp_id)
+LEFT JOIN chipRun ON chipRun.exp_id = rawExp.exp_id -- JOIN hook %s
 WHERE
     rawExp.fault = 0
Index: /trunk/ippTools/src/chiptool.c
===================================================================
--- /trunk/ippTools/src/chiptool.c	(revision 35571)
+++ /trunk/ippTools/src/chiptool.c	(revision 35572)
@@ -269,5 +269,5 @@
 
     PXOPT_LOOKUP_STR(workdir, config->args, "-set_workdir", true, false);
-    PXOPT_LOOKUP_STR(label, config->args, "-set_label", false, false);
+    PXOPT_LOOKUP_STR(label, config->args, "-set_label", true, false);
     PXOPT_LOOKUP_STR(reduction, config->args, "-set_reduction", false, false);
     PXOPT_LOOKUP_STR(expgroup, config->args, "-set_expgroup", false, false);
@@ -298,9 +298,11 @@
     psFree(where);
 
+    psString labelHook = NULL;
     if (unique) {
-      psStringAppend(&query, "AND chip_id IS NULL");
+      psStringAppend(&labelHook, "\nAND chipRun.label = '%s'", label);
+      psStringAppend(&query, " AND chip_id IS NULL");
     }
     
-    if (!p_psDBRunQuery(config->dbh, query)) {
+    if (!p_psDBRunQueryF(config->dbh, query, labelHook ? labelHook : "")) {
         psError(PS_ERR_UNKNOWN, false, "database error");
         psFree(query);
