diff --git a/daemons/ganeti-noded b/daemons/ganeti-noded
index a4811f99c47f6f730221cd06b58730eb20b2e15d..495b65c21e93e57869e74edef9deed58a3aaee0b 100755
--- a/daemons/ganeti-noded
+++ b/daemons/ganeti-noded
@@ -236,7 +236,8 @@ class NodeDaemonRequestHandler(http.HTTPRequestHandler):
     disk = objects.Disk.FromDict(params[0])
     dest_node = params[1]
     instance = objects.Instance.FromDict(params[2])
-    return backend.ExportSnapshot(disk, dest_node, instance)
+    cluster_name = params[3]
+    return backend.ExportSnapshot(disk, dest_node, instance, cluster_name)
 
   @staticmethod
   def perspective_finalize_export(params):
@@ -333,10 +334,10 @@ class NodeDaemonRequestHandler(http.HTTPRequestHandler):
     """Run the import function of an OS onto a given instance.
 
     """
-    inst_s, os_disk, swap_disk, src_node, src_image = params
+    inst_s, os_disk, swap_disk, src_node, src_image, cluster_name = params
     inst = objects.Instance.FromDict(inst_s)
     return backend.ImportOSIntoInstance(inst, os_disk, swap_disk,
-                                        src_node, src_image)
+                                        src_node, src_image, cluster_name)
 
   @staticmethod
   def perspective_instance_shutdown(params):
@@ -425,7 +426,7 @@ class NodeDaemonRequestHandler(http.HTTPRequestHandler):
     """Run a verify sequence on this node.
 
     """
-    return backend.VerifyNode(params[0])
+    return backend.VerifyNode(params[0], params[1])
 
   @staticmethod
   def perspective_node_start_master(params):
diff --git a/lib/backend.py b/lib/backend.py
index 474fc815a0661d51d97c3eed21a7002b00c03770..7dbce0c6c64b96f1188918c554b4a2d85b0535db 100644
--- a/lib/backend.py
+++ b/lib/backend.py
@@ -48,8 +48,8 @@ def _GetConfig():
   return ssconf.SimpleConfigReader()
 
 
-def _GetSshRunner():
-  return ssh.SshRunner(_GetConfig().GetClusterName())
+def _GetSshRunner(cluster_name):
+  return ssh.SshRunner(cluster_name)
 
 
 def _CleanDirectory(path, exclude=[]):
@@ -264,7 +264,7 @@ def GetNodeInfo(vgname):
   return outputarray
 
 
-def VerifyNode(what):
+def VerifyNode(what, cluster_name):
   """Verify the status of the local node.
 
   Args:
@@ -294,7 +294,7 @@ def VerifyNode(what):
     result['nodelist'] = {}
     random.shuffle(what['nodelist'])
     for node in what['nodelist']:
-      success, message = _GetSshRunner().VerifyNodeHostname(node)
+      success, message = _GetSshRunner(cluster_name).VerifyNodeHostname(node)
       if not success:
         result['nodelist'][node] = message
   if 'node-net-test' in what:
@@ -1295,7 +1295,7 @@ def SnapshotBlockDevice(disk):
                                  (disk.unique_id, disk.dev_type))
 
 
-def ExportSnapshot(disk, dest_node, instance):
+def ExportSnapshot(disk, dest_node, instance, cluster_name):
   """Export a block device snapshot to a remote node.
 
   Args:
@@ -1336,8 +1336,9 @@ def ExportSnapshot(disk, dest_node, instance):
 
   destcmd = utils.BuildShellCmd("mkdir -p %s && cat > %s/%s",
                                 destdir, destdir, destfile)
-  remotecmd = _GetSshRunner().BuildCmd(dest_node, constants.GANETI_RUNAS,
-                                       destcmd)
+  remotecmd = _GetSshRunner(cluster_name).BuildCmd(dest_node,
+                                                   constants.GANETI_RUNAS,
+                                                   destcmd)
 
   # all commands have been checked, so we're safe to combine them
   command = '|'.join([expcmd, comprcmd, utils.ShellQuoteArgs(remotecmd)])
@@ -1436,7 +1437,8 @@ def ExportInfo(dest):
   return config
 
 
-def ImportOSIntoInstance(instance, os_disk, swap_disk, src_node, src_image):
+def ImportOSIntoInstance(instance, os_disk, swap_disk, src_node, src_image,
+                         cluster_name):
   """Import an os image into an instance.
 
   Args:
@@ -1482,8 +1484,9 @@ def ImportOSIntoInstance(instance, os_disk, swap_disk, src_node, src_image):
     os.mkdir(constants.LOG_OS_DIR, 0750)
 
   destcmd = utils.BuildShellCmd('cat %s', src_image)
-  remotecmd = _GetSshRunner().BuildCmd(src_node, constants.GANETI_RUNAS,
-                                       destcmd)
+  remotecmd = _GetSshRunner(cluster_name).BuildCmd(src_node,
+                                                   constants.GANETI_RUNAS,
+                                                   destcmd)
 
   comprcmd = "gunzip"
   impcmd = utils.BuildShellCmd("(cd %s; %s -i %s -b %s -s %s &>%s)",
diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index a91ca23d1f3a91edfd73b425e9c0c4cefd7dc6a7..9dd65554a0d89dd2515a1cf1166a37b95f9d76bc 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -748,7 +748,8 @@ class LUVerifyCluster(LogicalUnit):
       'node-net-test': [(node.name, node.primary_ip, node.secondary_ip)
                         for node in nodeinfo]
       }
-    all_nvinfo = rpc.call_node_verify(nodelist, node_verify_param)
+    all_nvinfo = rpc.call_node_verify(nodelist, node_verify_param,
+                                      self.cfg.GetClusterName())
     all_rversion = rpc.call_version(nodelist)
     all_ninfo = rpc.call_node_info(nodelist, self.cfg.GetVGName())
 
@@ -1777,7 +1778,8 @@ class LUAddNode(LogicalUnit):
       # TODO: do a node-net-test as well?
     }
 
-    result = rpc.call_node_verify(node_verify_list, node_verify_param)
+    result = rpc.call_node_verify(node_verify_list, node_verify_param,
+                                  self.cfg.GetClusterName())
     for verifier in node_verify_list:
       if not result[verifier]:
         raise errors.OpExecError("Cannot communicate with %s's node daemon"
@@ -3581,8 +3583,9 @@ class LUCreateInstance(LogicalUnit):
         feedback_fn("* running the instance OS import scripts...")
         src_node = self.op.src_node
         src_image = self.src_image
+        cluster_name = self.cfg.GetClusterName()
         if not rpc.call_instance_os_import(pnode_name, iobj, "sda", "sdb",
-                                                src_node, src_image):
+                                           src_node, src_image, cluster_name):
           raise errors.OpExecError("Could not import os for instance"
                                    " %s on node %s" %
                                    (instance, pnode_name))
@@ -4830,8 +4833,10 @@ class LUExportInstance(LogicalUnit):
 
     # TODO: check for size
 
+    cluster_name = self.cfg.GetClusterName()
     for dev in snap_disks:
-      if not rpc.call_snapshot_export(src_node, dev, dst_node.name, instance):
+      if not rpc.call_snapshot_export(src_node, dev, dst_node.name,
+                                      instance, cluster_name):
         logger.Error("could not export block device %s from node %s to node %s"
                      % (dev.logical_id[1], src_node, dst_node.name))
       if not rpc.call_blockdev_remove(src_node, dev):
diff --git a/lib/rpc.py b/lib/rpc.py
index 7bf0fce40c1c750403563baf01bda68b8381d1d2..14a618580ee5b15cccc9919d6ed702a0f3980eb9 100644
--- a/lib/rpc.py
+++ b/lib/rpc.py
@@ -346,13 +346,13 @@ def call_node_add(node, dsa, dsapub, rsa, rsapub, ssh, sshpub):
   return c.getresult().get(node, False)
 
 
-def call_node_verify(node_list, checkdict):
+def call_node_verify(node_list, checkdict, cluster_name):
   """Request verification of given parameters.
 
   This is a multi-node call.
 
   """
-  c = Client("node_verify", [checkdict])
+  c = Client("node_verify", [checkdict, cluster_name])
   c.connect_list(node_list)
   c.run()
   return c.getresult()
@@ -652,13 +652,13 @@ def call_blockdev_snapshot(node, cf_bdev):
   return c.getresult().get(node, False)
 
 
-def call_snapshot_export(node, snap_bdev, dest_node, instance):
+def call_snapshot_export(node, snap_bdev, dest_node, instance, cluster_name):
   """Request the export of a given snapshot.
 
   This is a single-node call.
 
   """
-  params = [snap_bdev.ToDict(), dest_node, instance.ToDict()]
+  params = [snap_bdev.ToDict(), dest_node, instance.ToDict(), cluster_name]
   c = Client("snapshot_export", params)
   c.connect(node)
   c.run()
@@ -698,13 +698,14 @@ def call_export_info(node, path):
   return objects.SerializableConfigParser.Loads(str(result))
 
 
-def call_instance_os_import(node, inst, osdev, swapdev, src_node, src_image):
+def call_instance_os_import(node, inst, osdev, swapdev,
+                            src_node, src_image, cluster_name):
   """Request the import of a backup into an instance.
 
   This is a single-node call.
 
   """
-  params = [inst.ToDict(), osdev, swapdev, src_node, src_image]
+  params = [inst.ToDict(), osdev, swapdev, src_node, src_image, cluster_name]
   c = Client("instance_os_import", params)
   c.connect(node)
   c.run()