Index: /trunk/ippTools/share/Makefile.am
===================================================================
--- /trunk/ippTools/share/Makefile.am	(revision 16363)
+++ /trunk/ippTools/share/Makefile.am	(revision 16364)
@@ -55,4 +55,5 @@
 	pztool_find_completed_exp.sql \
 	pztool_pendingimfile.sql \
+	pztool_revertcopied.sql \
 	regtool_pendingexp.sql \
 	regtool_pendingimfile.sql \
Index: /trunk/ippTools/share/pztool_revertcopied.sql
===================================================================
--- /trunk/ippTools/share/pztool_revertcopied.sql	(revision 16364)
+++ /trunk/ippTools/share/pztool_revertcopied.sql	(revision 16364)
@@ -0,0 +1,3 @@
+DELETE FROM pzDoneImfile
+WHERE
+    fault != 0
Index: /trunk/ippTools/src/pztool.c
===================================================================
--- /trunk/ippTools/src/pztool.c	(revision 16363)
+++ /trunk/ippTools/src/pztool.c	(revision 16364)
@@ -737,4 +737,29 @@
 {
     PS_ASSERT_PTR_NON_NULL(config, false);
+
+    psString query = pxDataGet("pztool_revertcopied.sql");
+    if (!query) {
+        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        return false;
+    }
+
+    if (config->where) {
+        psString whereClause = psDBGenerateWhereConditionSQL(config->where, "pzDoneImfile");
+        psStringAppend(&query, " AND %s", whereClause);
+        psFree(whereClause);
+    }
+
+    if (!p_psDBRunQuery(config->dbh, query)) {
+        psError(PS_ERR_UNKNOWN, false, "database error");
+        psFree(query);
+        return false;
+    }
+    psFree(query);
+
+    if (psDBAffectedRows(config->dbh) < 1) {
+        psError(PS_ERR_UNKNOWN, false, "should have affected atleast 1 row");
+        return false;
+    }
+
     return true;
 }
