diff --git a/erp5/tests/testERP5TestNode.py b/erp5/tests/testERP5TestNode.py
index 42d1a7c58aca7f50d69ce2999e5198e7f8b0ba2e..ceb30116feb9878b9b8372dbc4c960e4427f2199 100644
--- a/erp5/tests/testERP5TestNode.py
+++ b/erp5/tests/testERP5TestNode.py
@@ -331,6 +331,15 @@ develop = false
     rev_list = test_node.getAndUpdateFullRevisionList(node_test_suite)
     output = call("git branch".split()).strip()
     self.assertTrue("* bar" in output.split('\n'))
+    # Add a fourth branch on remote, make sure we could switch to it
+    # this time the branch name is a substring of previous one (we had
+    # failure is such case at some point)
+    remote_call = self.getCaller(cwd=self.remote_repository2)
+    output = remote_call('git checkout master -b ba'.split())
+    vcs_repository_info['branch'] = 'ba'
+    rev_list = self.getAndUpdateFullRevisionList(test_node, node_test_suite)
+    output = call("git branch".split()).strip()
+    self.assertTrue("* ba" in output.split('\n'))
 
   def test_05c_changeRepositoryUrl(self):
     """
diff --git a/erp5/util/testnode/Updater.py b/erp5/util/testnode/Updater.py
index 3943f86afd94db7350c64f39c65b41656d7a9732..d7b62a61757126084ec27667806a9ccfec25744a 100644
--- a/erp5/util/testnode/Updater.py
+++ b/erp5/util/testnode/Updater.py
@@ -202,7 +202,7 @@ class Updater(object):
           if self.branch and \
             not ("* %s" % self.branch in self._git('branch').split("\n")):
               # Delete branch if already exists
-              if self.branch in self._git('branch'):
+              if self.branch in [x.strip() for x in self._git('branch').split("\n")]:
                 self._git('branch', '-D', self.branch)
               self._git('checkout',  'origin/%s' % self.branch, '-b',
                         self.branch)