Index: /trunk/ippTasks/register.pro
===================================================================
--- /trunk/ippTasks/register.pro	(revision 37726)
+++ /trunk/ippTasks/register.pro	(revision 37727)
@@ -36,4 +36,7 @@
     active false
   end
+  task register.exp.revert
+    active false
+  end
   task register.exp.load
     active true
@@ -60,4 +63,7 @@
     active false
   end
+  task register.exp.revert
+    active false
+  end
   task register.exp.load
     active false
@@ -78,8 +84,14 @@
     active true
   end
+  task register.exp.revert
+    active true
+  end
 end
 
 macro register.revert.off
   task register.imfile.revert
+    active false
+  end
+  task register.exp.revert
     active false
   end
@@ -202,4 +214,5 @@
 $regPendingBurntoolImfile_DB = 0
 $regRevertImfile_DB = 0
+$regRevertExp_DB = 0
 $regPendingExp_DB = 0
 $reg_datePAGE = 0
@@ -371,4 +384,50 @@
       $regRevertImfile_DB ++
       if ($regRevertImfile_DB >= $DB:n) set regRevertImfile_DB = 0
+    end
+    add_poll_args run
+    command $run
+  end
+
+  # success
+  task.exit    0
+  end
+
+  # locked list
+  task.exit    default
+    showcommand failure
+  end
+
+  task.exit    crash
+    showcommand crash
+  end
+
+  # operation times out
+  task.exit    timeout
+    showcommand timeout
+  end
+end
+
+
+
+task register.exp.revert
+  host         local
+  periods      -poll 60.0
+  periods      -exec 1800.0
+  periods      -timeout 120.0
+  npending     1
+
+  stdout       NULL
+  stderr       $LOGDIR/register.exp.revert.log
+
+  task.exec
+# Only revert fault 2, because other faults likely mean something horrible is happening.
+    $run = regtool -revertprocessedexp -fault 2
+    if ($DB:n == 0) 
+      option DEFAULT
+    else
+      option $DB:$regRevertExp_DB
+      $run = $run -dbname $DB:$regRevertExp_DB
+      $regRevertExp_DB ++
+      if ($regRevertExp_DB >= $DB:n) set regRevertExp_DB = 0
     end
     add_poll_args run
