Index: vcpx/repository.py
===================================================================
--- vcpx/repository.py	(revision 1149)
+++ vcpx/repository.py	(revision 1150)
@@ -250,4 +250,9 @@
                                      "a module also")
 
+        if self.module.endswith('/'):
+            self.log.debug("Removing final slash from %r in %r",
+                           self.module, self.name)
+            self.module = self.module.rstrip('/')
+
 
 class CvspsRepository(CvsRepository):
Index: vcpx/cvs.py
===================================================================
--- vcpx/cvs.py	(revision 1095)
+++ vcpx/cvs.py	(revision 1151)
@@ -402,5 +402,16 @@
                 if cs is None:
                     break
+
                 date,author,changelog,e,rev,state,newentry = cs
+
+                # CVS seems to sometimes mess up what it thinks the branch is...
+                if not cvs_revs_same_branch(normalize_cvs_rev(rev), branchnum):
+                    self.log.warning("Skipped revision %s on entry %s "
+                                     "as revision didn't match branch revision %s "
+                                     "for branch %s"
+                                     % (str(normalize_cvs_rev(rev)), entry,
+                                        str(branchnum), str(branch)))
+                    expected_revisions -= 1
+                    continue
 
                 # Skip spurious entries added in a branch
