diff --git a/lib/Site/ZpoolScrub.pm b/lib/Site/ZpoolScrub.pm
index 0ffb98f6a33b83e579974b86e5b7deb226ee0b32..38531e5d9b3b7acc48ea519ca470b44a3baa206f 100644
--- a/lib/Site/ZpoolScrub.pm
+++ b/lib/Site/ZpoolScrub.pm
@@ -125,7 +125,7 @@ sub handler {
         $when = int(($when+30)/60);
         $repaired += $errors if $repaired < $errors;
         $togo = 0;
-        `$ECHO -n $howlong > $statusfile` unless $howlong == $oldhowlong && (-w $statusfile);
+        `$ECHO -n $howlong > $statusfile` unless $howlong == $oldhowlong && (not ( -w $statusfile) );
       }
       elsif ( (/^\s*scan:\s+scrub\s+in\s+progress\s+since\s+(.+)$/) or 
               (/^\s*scan:\s+resilver\s+in\s+progress\s+since\s+(.+)$/)
@@ -174,6 +174,9 @@ sub handler {
         $repaired = $1;
       }
     }
+    if ( ( $togo > 0 ) && ( $howlong == 0 ) ) {
+        $howlong = $when + $togo
+    }
     return {
       "when"       => [$when, "i"],
       "howlong"    => [$howlong,  "i"],