Index: trunk/ippTools/src/stacktoolConfig.c
===================================================================
--- trunk/ippTools/src/stacktoolConfig.c	(revision 14110)
+++ trunk/ippTools/src/stacktoolConfig.c	(revision 14112)
@@ -121,5 +121,4 @@
             "set fault code", 0);
 
-
     // -sumskyfile
     psMetadata *sumskyfileArgs= psMetadataAlloc();
@@ -133,4 +132,11 @@
             "use the simple output format", false);
 
+    // -revertsumskyfile
+    psMetadata *revertsumskyfileArgs= psMetadataAlloc();
+    psMetadataAddStr(revertsumskyfileArgs, PS_LIST_TAIL, "-stack_id", 0,
+            "search by stack ID (required)", NULL);
+    psMetadataAddS16(revertsumskyfileArgs, PS_LIST_TAIL, "-code",  0,
+            "search by fault code", 0);
+
     psFree(now);
 
@@ -145,4 +151,5 @@
     PXTOOL_ADD_MODE("-addsumskyfile",   "", STACKTOOL_MODE_ADDSUMSKYFILE,   addsumskyfileArgs);
     PXTOOL_ADD_MODE("-sumskyfile",      "", STACKTOOL_MODE_SUMSKYFILE,      sumskyfileArgs);
+    PXTOOL_ADD_MODE("-revertsumskyfile","", STACKTOOL_MODE_REVERTSUMSKYFILE,      revertsumskyfileArgs);
 
     if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
@@ -199,7 +206,32 @@
     }
 }
+
+{
+    psString str = NULL;
+    bool status = false;
+    if ((str = psMetadataLookupStr(&status, config->args, "-stack_id"))) {
+        if (!psMetadataAddS64(config->where, PS_LIST_TAIL, "stack_id", 0, "==", (psS64)atoll(str))) {
+            psError(PS_ERR_UNKNOWN, false, "failed to add item stack_id");
+            psFree(config);
+            return NULL;
+        }
+    }
+}
+
     addWhereStr(skycell_id);
     addWhereStr(tess_id);
-    addWhereStr(exp_id);
+
+    // convert '-code' to 'fault'
+    {
+        psS16 fault = 0;
+        bool status = false;
+        if ((fault = psMetadataLookupS16(&status, config->args, "-code"))) {
+            if (!psMetadataAddS16(config->where, PS_LIST_TAIL, "fault", 0, "==", fault)) {
+                psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
+                psFree(config);
+                return NULL;
+            }
+        }
+    }
 
     if (config->where->list->n < 1) {
