Index: trunk/ippTools/src/warptool.c
===================================================================
--- trunk/ippTools/src/warptool.c	(revision 25778)
+++ trunk/ippTools/src/warptool.c	(revision 25800)
@@ -1709,12 +1709,30 @@
     PXOPT_LOOKUP_STR(skycell_id, config->args, "-skycell_id", true, false);
     PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false);
-
-    psString query = pxDataGet("warptool_updateskyfile.sql");
-
-    if (!p_psDBRunQueryF(config->dbh, query, fault, warp_id, skycell_id)) {
-        psError(PS_ERR_UNKNOWN, false, "database error");
-        return false;
-    }
-    psFree(query);
+    PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false);
+
+    if (!state) {
+      psString query = pxDataGet("warptool_updateskyfile.sql");
+      
+      if (!p_psDBRunQueryF(config->dbh, query, fault, warp_id, skycell_id)) {
+        psError(PS_ERR_UNKNOWN, false, "database error");
+        return false;
+      }
+      psFree(query);
+    }
+    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;
