Index: trunk/ippTools/src/difftool.c
===================================================================
--- trunk/ippTools/src/difftool.c	(revision 34766)
+++ trunk/ippTools/src/difftool.c	(revision 34770)
@@ -2742,17 +2742,35 @@
     PS_ASSERT_PTR_NON_NULL(config, false);
 
-    PXOPT_LOOKUP_S16(fault, config->args, "-fault", true, false);
-    PXOPT_LOOKUP_S16(quality, config->args, "-set_quality", false, false);
-
-    psMetadata *where = psMetadataAlloc();
-    PXOPT_COPY_S64(config->args, where, "-diff_id",   "diff_id",   "==");
-    PXOPT_COPY_STR(config->args, where, "-skycell_id", "skycell_id",   "==");
-
-    if (!pxSetFaultCode(config->dbh, "diffSkyfile", where, fault, quality)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag");
+    PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false);
+
+    if (!state) {
+        psMetadata *where = psMetadataAlloc();
+        PXOPT_COPY_S64(config->args, where, "-diff_id",   "diff_id",   "==");
+        PXOPT_COPY_STR(config->args, where, "-skycell_id", "skycell_id",   "==");
+
+        PXOPT_LOOKUP_S16(fault, config->args, "-fault", true, false);
+        PXOPT_LOOKUP_S16(quality, config->args, "-set_quality", false, false);
+
+        if (!pxSetFaultCode(config->dbh, "diffSkyfile", where, fault, quality)) {
+            psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag");
+            psFree (where);
+            return false;
+        }
         psFree (where);
-        return false;
-    }
-    psFree (where);
+    } else {
+      if (strcmp(state,"error_cleaned") == 0) {
+        change_skyfile_data_state(config,"error_cleaned", "goto_cleaned");
+      }
+      else if (strcmp(state, "error_scrubbed") == 0) {
+        change_skyfile_data_state(config,"error_scrubbed", "goto_scrubbed");
+      }
+      else if (strcmp(state, "error_purged") == 0) {
+        change_skyfile_data_state(config,"error_purged", "goto_purged");
+      }
+      else {
+        psError(PS_ERR_UNKNOWN, false, "unhandled state given");
+        return(false);
+      }
+    }
 
     return true;
