and website_rsync_done version =
   let key = sprintf "libguestfs_website_rsync_done_%s" version.version in
   target (memory_exists key);
+  onrun (fun () -> memory_set key "1");
 
   sh "
     cd %s
     echo NOT RUNNING: . .rsync
-  " libguestfs_website_cvs;
-  memory_set key "1"
+  " libguestfs_website_cvs
 
 (* Goal: Tarball added to CVS and CVS checked in. *)
 and website_cvs_checked_in version =
   let key = sprintf "libguestfs_website_cvs_checked_in_%s" version.version in
   target (memory_exists key);
+  onrun (fun () -> memory_set key "1");
 
   require (tarball_created version);
   require (tarball_tested version);
 and tarball_tested version =
   let key = sprintf "libguestfs_tarball_tested_%s" version.version in
   target (memory_exists key);
+  onrun (fun () -> memory_set key "1");
 
   require (tarball_created version);
 
 
   let key = sprintf "libguestfs_commit_tested_%s" commit in
   target (memory_exists key);
+  onrun (fun () -> memory_set key "1");
 
   let repodir = sprintf "%s/repos/%s-%s" buildtmp package branch in
   require (directory_exists repodir);
   " repodir
     commit
     (quote (libguestfs_localconfigure `Git))
-    (quote libguestfs_localenv);
-
-  memory_set key "1"
+    (quote libguestfs_localenv)
 
 (* Helper function to make a full 'info' object from a version
  * number.