diff --git a/tools/cluster-merge b/tools/cluster-merge
index fbb2b68713f485f05b7d5bfffb4bbf6ad9916b36..5b6d0b6506ddcc23841bb15b3275a0bd840249d2 100755
--- a/tools/cluster-merge
+++ b/tools/cluster-merge
@@ -102,7 +102,7 @@ class Merger(object):
     self.clusters = clusters
     self.pause_period = pause_period
     self.work_dir = tempfile.mkdtemp(suffix="cluster-merger")
-    self.cluster_name = cli.GetClient().QueryConfigValues(["cluster_name"])
+    (self.cluster_name, ) = cli.GetClient().QueryConfigValues(["cluster_name"])
     self.ssh_runner = ssh.SshRunner(self.cluster_name)
 
   def Setup(self):
@@ -116,6 +116,10 @@ class Merger(object):
     """
     (remote_path, _, _) = ssh.GetUserFiles("root")
 
+    if self.cluster_name in self.clusters:
+      raise errors.CommandError("Cannot merge cluster %s with itself" %
+                                self.cluster_name)
+
     # Fetch remotes private key
     for cluster in self.clusters:
       result = self._RunCmd(cluster, "cat %s" % remote_path, batch=False,