diff --git a/qa/ganeti-qa.py b/qa/ganeti-qa.py
index b06155f35e5f43e21dee2b448c6fb20d9aff59d5..34e4787a57a6c9e91a0650d1750fef58e8e843e7 100755
--- a/qa/ganeti-qa.py
+++ b/qa/ganeti-qa.py
@@ -203,9 +203,13 @@ def RunCommonInstanceTests(instance):
     RunTest(qa_rapi.TestInstance, instance)
 
 
-def RunExportImportTests(instance, pnode):
+def RunExportImportTests(instance, pnode, snode):
   """Tries to export and import the instance.
 
+  @param pnode: current primary node of the instance
+  @param snode: current secondary node of the instance, if any,
+      otherwise None
+
   """
   if qa_config.TestEnabled('instance-export'):
     RunTest(qa_instance.TestInstanceExportNoTarget, instance)
@@ -231,12 +235,16 @@ def RunExportImportTests(instance, pnode):
       qa_config.TestEnabled("inter-cluster-instance-move")):
     newinst = qa_config.AcquireInstance()
     try:
-      pnode2 = qa_config.AcquireNode(exclude=pnode)
+      if snode is None:
+        excl = [pnode]
+      else:
+        excl = [pnode, snode]
+      tnode = qa_config.AcquireNode(exclude=excl)
       try:
         RunTest(qa_rapi.TestInterClusterInstanceMove, instance, newinst,
-                pnode, pnode2)
+                pnode, snode, tnode)
       finally:
-        qa_config.ReleaseNode(pnode2)
+        qa_config.ReleaseNode(tnode)
     finally:
       qa_config.ReleaseInstance(newinst)
 
@@ -360,7 +368,7 @@ def main():
     if qa_config.TestEnabled('instance-add-plain-disk'):
       instance = RunTest(qa_instance.TestInstanceAddWithPlainDisk, pnode)
       RunCommonInstanceTests(instance)
-      RunExportImportTests(instance, pnode)
+      RunExportImportTests(instance, pnode, None)
       RunDaemonTests(instance, pnode)
       RunTest(qa_instance.TestInstanceRemove, instance)
       del instance
@@ -380,7 +388,7 @@ def main():
             RunTest(qa_instance.TestInstanceShutdown, instance)
             RunTest(qa_instance.TestInstanceConvertDisk, instance, snode)
             RunTest(qa_instance.TestInstanceStartup, instance)
-          RunExportImportTests(instance, pnode)
+          RunExportImportTests(instance, pnode, snode)
           RunHardwareFailureTests(instance, pnode, snode)
           RunTest(qa_instance.TestInstanceRemove, instance)
           del instance
diff --git a/qa/qa_rapi.py b/qa/qa_rapi.py
index add87e405ee881a66456d275ba1e8d879ce062b7..df01788d1d8927a7e778dc2459f5f72126a7f40d 100644
--- a/qa/qa_rapi.py
+++ b/qa/qa_rapi.py
@@ -396,7 +396,8 @@ def TestRapiInstanceModify(instance):
     })
 
 
-def TestInterClusterInstanceMove(src_instance, dest_instance, pnode, snode):
+def TestInterClusterInstanceMove(src_instance, dest_instance,
+                                 pnode, snode, tnode):
   """Test tools/move-instance"""
   master = qa_config.GetMasterNode()
 
@@ -406,12 +407,18 @@ def TestInterClusterInstanceMove(src_instance, dest_instance, pnode, snode):
 
   # TODO: Run some instance tests before moving back
 
-  # note: pnode is the *current* primary node, so we move it first to
-  # snode, then back
+  if snode is None:
+    # instance is not redundant, but we still need to pass a node
+    # (which will be ignored)
+    fsec = tnode
+  else:
+    fsec = snode
+  # note: pnode:snode are the *current* nodes, so we move it first to
+  # tnode:pnode, then back to pnode:snode
   for si, di, pn, sn in [(src_instance["name"], dest_instance["name"],
-                          snode["primary"], pnode["primary"]),
+                          tnode["primary"], pnode["primary"]),
                          (dest_instance["name"], src_instance["name"],
-                          pnode["primary"], snode["primary"])]:
+                          pnode["primary"], fsec["primary"])]:
     cmd = [
       "../tools/move-instance",
       "--verbose",