Index: trunk/ippTools/src/disttool.c
===================================================================
--- trunk/ippTools/src/disttool.c	(revision 26185)
+++ trunk/ippTools/src/disttool.c	(revision 26192)
@@ -1611,4 +1611,5 @@
     PXOPT_COPY_S64(config->args, where, "-dest_id",   "dest_id", "==");
     PXOPT_COPY_S64(config->args, where, "-target_id", "target_id", "==");
+    PXOPT_COPY_STR(config->args, where, "-filter", "filter", "LIKE");
 
     PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false);
@@ -1619,5 +1620,5 @@
     }
     psString query = NULL;
-    psStringAppend(&query, "UPDATE rcInterest SET state = '%s'", state);
+    psStringAppend(&query, "UPDATE rcInterest join distTarget using(target_id) SET rcInterest.state = '%s'", state);
 
     if (psListLength(where->list)) {
@@ -1639,4 +1640,7 @@
     }
     psFree(query);
+
+    psS64 numUpdated = psDBAffectedRows(config->dbh);
+    printf("updated %" PRId64 " interests\n", numUpdated);
 
     return true;
Index: trunk/ippTools/src/disttoolConfig.c
===================================================================
--- trunk/ippTools/src/disttoolConfig.c	(revision 26185)
+++ trunk/ippTools/src/disttoolConfig.c	(revision 26192)
@@ -293,4 +293,5 @@
     psMetadataAddS64(updateinterestArgs, PS_LIST_TAIL, "-target_id", 0, "define target_id", 0);
     psMetadataAddStr(updateinterestArgs, PS_LIST_TAIL, "-set_state", 0, "define state (required)", NULL);
+    psMetadataAddStr(updateinterestArgs, PS_LIST_TAIL, "-filter",    0, "define filter (LIKE comparison)", NULL);
 
     // -listinterests
