Index: vcpx/repository/bzr.py
===================================================================
--- vcpx/repository/bzr.py	(revision 1629)
+++ vcpx/repository/bzr.py	(revision 1668)
@@ -23,5 +23,5 @@
 from bzrlib.branch import Branch
 from bzrlib.bzrdir import BzrDir
-from bzrlib.errors import NoSuchRevision
+from bzrlib.errors import NoSuchRevision, TagsNotSupported
 from bzrlib.missing import find_unmerged
 from bzrlib.osutils import normpath, pathjoin
@@ -396,4 +396,14 @@
                                   timestamp=timestamp, timezone=timezone)
 
+    def _tag(self, tagname, date, author):
+        """
+        Tag the current version, if supported.
+        """
+        branch = self._working_tree.branch
+        try:
+            branch.tags.set_tag(tagname, branch.last_revision())
+        except TagsNotSupported:
+            pass
+
     def _removePathnames(self, names):
         """
Index: vcpx/repository/darcs/source.py
===================================================================
--- vcpx/repository/darcs/source.py	(revision 1663)
+++ vcpx/repository/darcs/source.py	(revision 1669)
@@ -406,11 +406,21 @@
             # wasn't perfect, as it was printing useless verbosity before
             # and after the actual xml. Around 2.0.0+275 I removed that...
-
-            line = output.readline() # Would pull from "/home/lele/wip/darcs-2.0"...
+            # Darcs 2.4 however still emits the first line :-\
+
+            line = output.readline()
             if line.startswith('Would pull from '):
-                # Skip the first two lines and drop the last two as well
-                output.readline() # Would pull the following changes:
-                xml = StringIO(''.join(output.readlines()[:-2]))
-                xml.seek(0)
+                # Ok, this is either darcs>2.4 or my early even noisier implementation
+                pos = output.tell()
+                line = output.readline()
+                if line.startswith('Would pull the following changes:'):
+                    # This is early implementation: skip the first two lines
+                    # (discarded above) and drop the last two as well
+                    xml = StringIO(''.join(output.readlines()[:-2]))
+                    xml.seek(0)
+                else:
+                    # This is darcs>2.4, go back to the second line,
+                    # thus ignoring only the first
+                    output.seek(pos)
+                    xml = output
             else:
                 output.seek(0)
