diff --git a/qa/ganeti-qa.py b/qa/ganeti-qa.py
index dffcbab5d76cbc8c75765d96361f5ed7f34b6587..f44dbec72804192f6aeb81507ce921376c68387d 100755
--- a/qa/ganeti-qa.py
+++ b/qa/ganeti-qa.py
@@ -137,6 +137,9 @@ def RunCommonInstanceTests(instance):
   if qa_config.TestEnabled('instance-info'):
     RunTest(qa_instance.TestInstanceInfo, instance)
 
+  if qa_config.TestEnabled('instance-modify'):
+    RunTest(qa_instance.TestInstanceModify, instance)
+
   if qa_config.TestEnabled('instance-reinstall'):
     RunTest(qa_instance.TestInstanceShutdown, instance)
     RunTest(qa_instance.TestInstanceReinstall, instance)
diff --git a/qa/qa-sample.yaml b/qa/qa-sample.yaml
index a5795d705e6ee1071aa3f2e8d2063ef0625513ce..57fe764b5191abcc2d0727916ea451e371a242f6 100644
--- a/qa/qa-sample.yaml
+++ b/qa/qa-sample.yaml
@@ -58,6 +58,7 @@ tests:
   instance-list: True
   instance-failover: True
   instance-info: True
+  instance-modify: True
   instance-export: True
   instance-import: True
   instance-reinstall: True
diff --git a/qa/qa_instance.py b/qa/qa_instance.py
index 132c6d4da42b2832aa3971d2982ef9fb5a618a22..12906bb105a00d741ce8d3e9141fc199148e6697 100644
--- a/qa/qa_instance.py
+++ b/qa/qa_instance.py
@@ -151,6 +151,39 @@ def TestInstanceInfo(instance):
                        utils.ShellQuoteArgs(cmd)).wait(), 0)
 
 
+@qa_utils.DefineHook('instance-modify')
+def TestInstanceModify(instance):
+  """gnt-instance modify"""
+  master = qa_config.GetMasterNode()
+
+  orig_memory = qa_config.get('mem')
+  orig_bridge = qa_config.get('bridge', 'xen-br0')
+  args = [
+    ["--memory", "128"],
+    ["--memory", str(orig_memory)],
+    ["--cpu", "2"],
+    ["--cpu", "1"],
+    ["--bridge", "xen-br1"],
+    ["--bridge", orig_bridge],
+    ["--kernel", "/dev/null"],
+    ["--kernel", "default"],
+    ["--initrd", "/dev/null"],
+    ["--initrd", "none"],
+    ["--initrd", "default"],
+    ["--hvm-boot-order", "acn"],
+    ["--hvm-boot-order", "default"],
+    ]
+  for alist in args:
+    cmd = ['gnt-instance', 'modify'] + alist + [instance['name']]
+    AssertEqual(StartSSH(master['primary'],
+                         utils.ShellQuoteArgs(cmd)).wait(), 0)
+
+  # check no-modify
+  cmd = ['gnt-instance', 'modify', instance['name']]
+  AssertNotEqual(StartSSH(master['primary'],
+                          utils.ShellQuoteArgs(cmd)).wait(), 0)
+
+
 @qa_utils.DefineHook('instance-list')
 def TestInstanceList():
   """gnt-instance list"""