diff --git a/qa/ganeti-qa.py b/qa/ganeti-qa.py
index 42b95b8433fd4cc9384a4a930d9894f128139c16..5f6c1047c8bd9c9098de179393c7431e0009b85c 100755
--- a/qa/ganeti-qa.py
+++ b/qa/ganeti-qa.py
@@ -91,6 +91,9 @@ def RunClusterTests():
   if qa_config.TestEnabled('cluster-verify'):
     RunTest(qa_cluster.TestClusterVerify)
 
+  if qa_config.TestEnabled('cluster-rename'):
+    RunTest(qa_cluster.TestClusterRename)
+
   if qa_config.TestEnabled('cluster-info'):
     RunTest(qa_cluster.TestClusterVersion)
     RunTest(qa_cluster.TestClusterInfo)
diff --git a/qa/qa-sample.yaml b/qa/qa-sample.yaml
index 57fe764b5191abcc2d0727916ea451e371a242f6..cbb48287987ba95436854b598d14910df84f2002 100644
--- a/qa/qa-sample.yaml
+++ b/qa/qa-sample.yaml
@@ -1,5 +1,6 @@
 # Cluster name
 name: xen-test
+rename: xen-test-rename
 hypervisor-type: xen-3.0
 
 # System to use
@@ -36,6 +37,7 @@ tests:
   cluster-copyfile: True
   cluster-master-failover: True
   cluster-destroy: True
+  cluster-rename: True
 
   node-info: True
   node-volumes: True
diff --git a/qa/qa_cluster.py b/qa/qa_cluster.py
index 70d1c4386b76a100eadd2bba353bd198ff86196f..dfd6efed3c7a6544eb0338096e3ace6d4585a38b 100644
--- a/qa/qa_cluster.py
+++ b/qa/qa_cluster.py
@@ -79,6 +79,37 @@ def TestClusterInit():
                        utils.ShellQuoteArgs(cmd)).wait(), 0)
 
 
+@qa_utils.DefineHook('cluster-rename')
+def TestClusterRename():
+  """gnt-cluster rename"""
+  master = qa_config.GetMasterNode()
+
+  cmd = ['gnt-cluster', 'rename', '-f']
+
+  original_name = qa_config.get('name')
+  rename_target = qa_config.get('rename', None)
+  if rename_target is None:
+    print qa_utils.FormatError('"rename" entry is missing')
+    return
+
+  cmd_1 = cmd + [rename_target]
+  cmd_2 = cmd + [original_name]
+
+  cmd_verify = ['gnt-cluster', 'verify']
+
+  AssertEqual(StartSSH(master['primary'],
+                       utils.ShellQuoteArgs(cmd_1)).wait(), 0)
+
+  AssertEqual(StartSSH(master['primary'],
+                       utils.ShellQuoteArgs(cmd_verify)).wait(), 0)
+
+  AssertEqual(StartSSH(master['primary'],
+                       utils.ShellQuoteArgs(cmd_2)).wait(), 0)
+
+  AssertEqual(StartSSH(master['primary'],
+                       utils.ShellQuoteArgs(cmd_verify)).wait(), 0)
+
+
 @qa_utils.DefineHook('cluster-verify')
 def TestClusterVerify():
   """gnt-cluster verify"""