Index: trunk/ippTools/src/pztool.c
===================================================================
--- trunk/ippTools/src/pztool.c	(revision 39519)
+++ trunk/ippTools/src/pztool.c	(revision 41582)
@@ -49,4 +49,5 @@
 static bool updatepzexpMode(pxConfig *config);
 static bool updatenewexpMode(pxConfig *config);
+static bool updatesummitExpMode(pxConfig *config);
 
 // static bool copydoneCompleteExp(pxConfig *config);
@@ -54,4 +55,5 @@
 static psArray *pzArrayZip(psArray *arraySet, psS64 limit);
 static bool pzDownloadExpSetState(pxConfig *config, const psS64 summit_id, const char *state);
+static bool summitExpSetFault(pxConfig *config, const psS64 summit_id, const int fault);
 
 # define MODECASE(caseName, func) \
@@ -88,4 +90,5 @@
 	MODECASE(PZTOOL_MODE_UPDATEPZEXP, updatepzexpMode);
         MODECASE(PZTOOL_MODE_UPDATENEWEXP, updatenewexpMode);
+	MODECASE(PZTOOL_MODE_UPDATESUMMITEXP, updatesummitExpMode);
         default:
             psAbort("invalid option (this should not happen)");
@@ -933,4 +936,36 @@
 }
 
+static bool summitExpSetFault(pxConfig *config, const psS64 summit_id, const int fault)
+{
+    // check that state is a valid string value
+  if ((fault < 0) || (fault > 2048)) {
+    psError(PS_ERR_UNKNOWN, false,
+	    "invalid summitExp fault: %d", fault);
+    return false;
+  }
+
+    char *query = "UPDATE summitExp SET fault = %d WHERE summit_id = %ld";
+    if (!p_psDBRunQueryF(config->dbh, query, fault, summit_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to change state for %lld", (long long) summit_id);
+        return false;
+    }
+
+    return true;
+}
+
+static bool updatesummitExpMode(pxConfig *config)
+{
+  PS_ASSERT_PTR_NON_NULL(config, false);
+  PXOPT_LOOKUP_S64(summit_id, config->args, "-summit_id", true, false);
+  PXOPT_LOOKUP_S32(state,    config->args, "-set_fault",true, false);
+
+  if (!summitExpSetFault(config,summit_id, fault)) {
+    psError(PS_ERR_UNKNOWN, false, "failed to change state for %lld", (long long) summit_id);
+    return false;
+  }
+  return true;
+}
+  
+  
 static bool updatepzexpMode(pxConfig *config)
 {
