diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index c601c441e4233b0766cf2c757069b4c806e8ebaa..099def19699a42a3ed30ab21c1d14c887e7f5fb7 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -1862,7 +1862,9 @@ class LUAddNode(LogicalUnit):
     # Distribute updated /etc/hosts and known_hosts to all nodes,
     # including the node just added
     myself = self.cfg.GetNodeInfo(self.sstore.GetMasterNode())
-    dist_nodes = self.cfg.GetNodeList() + [node]
+    dist_nodes = self.cfg.GetNodeList()
+    if not self.op.readd:
+      dist_nodes.append(node)
     if myself.name in dist_nodes:
       dist_nodes.remove(myself.name)
 
diff --git a/qa/ganeti-qa.py b/qa/ganeti-qa.py
index 47db0b79006901abb4297765125833d2c6504276..4d0ac6b32b1de4600965efa741a41623e809925f 100755
--- a/qa/ganeti-qa.py
+++ b/qa/ganeti-qa.py
@@ -258,14 +258,19 @@ def main():
   if qa_config.TestEnabled('tags'):
     RunTest(qa_tags.TestClusterTags)
 
+  if qa_config.TestEnabled('node-readd'):
+    master = qa_config.GetMasterNode()
+    pnode = qa_config.AcquireNode(exclude=master)
+    try:
+      RunTest(qa_node.TestNodeReadd, pnode)
+    finally:
+      qa_config.ReleaseNode(pnode)
+
   pnode = qa_config.AcquireNode()
   try:
     if qa_config.TestEnabled('tags'):
       RunTest(qa_tags.TestNodeTags, pnode)
 
-    if qa_config.TestEnabled('node-readd'):
-      RunTest(qa_node.TestNodeReadd, pnode)
-
     if qa_config.TestEnabled('instance-add-plain-disk'):
       instance = RunTest(qa_instance.TestInstanceAddWithPlainDisk, pnode)
       RunCommonInstanceTests(instance)
diff --git a/qa/qa_node.py b/qa/qa_node.py
index 20840bde1c859a1accf13909d788579df5da481a..f337734e5f5ddfcd3388d53a33d5e674dfef42b9 100644
--- a/qa/qa_node.py
+++ b/qa/qa_node.py
@@ -35,7 +35,7 @@ def _NodeAdd(node, readd=False):
   if not readd and node.get('_added', False):
     raise qa_error.Error("Node %s already in cluster" % node['primary'])
   elif readd and not node.get('_added', False):
-    raise qa_error.Error("Node not yet %s in cluster" % node['primary'])
+    raise qa_error.Error("Node %s not yet in cluster" % node['primary'])
 
   cmd = ['gnt-node', 'add']
   if node.get('secondary', None):