diff --git a/utils/vfile.py b/utils/vfile.py
index 715ff27f2631578df475c03ea4d1535f5ef04fe1..018261527ab9597d5977a97a210da289ef7549eb 100644
--- a/utils/vfile.py
+++ b/utils/vfile.py
@@ -122,6 +122,12 @@ class VersionedFile(file):
     def _repoint_symlink(self):
         # re-point symlink to latest version
         last_version = max(self.known_versions())
+        # XXX Another race condition.  File will not exist for a very brief time.
+        os.unlink(self.fullname)
+        os.symlink(self._name_for_version(last_version), self.fullname)
+        return
+
+# XXX   This fails when renaming/mv-ing across devices.
         # XXX assumption: tempfile name will remain unique after closing
         tmp = tempfile.NamedTemporaryFile(delete=True)
         tmpname = tmp.name