Index: vcpx/session.py
===================================================================
--- vcpx/session.py	(revision 439)
+++ vcpx/session.py	(revision 441)
@@ -506,5 +506,6 @@
             self.__err('Checkout failed', True)
             return
-        
+
+        self.source_revision = actual.revision
         self.writeStateFile()
 
@@ -567,4 +568,5 @@
         self.source_revision = changeset.revision
         self.changesets.remove(changeset)
+        self.writeStateFile()
 
     def do_update(self, arg):
@@ -655,6 +657,4 @@
                                'failure', True)
             finally:
-                self.writeStateFile()
-
                 if self.changesets:
                     self.__log("There are still %d pending changesets, "
