diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index 3bf3742352f9c33d7adce45856aaee425d773522..3b8663d82e4ddbbf843704a4bc74f2e0fbe1a784 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -8388,6 +8388,10 @@ class LUInstanceMove(LogicalUnit):
     assert self.instance is not None, \
       "Cannot retrieve locked instance %s" % self.op.instance_name
 
+    if instance.disk_template not in constants.DTS_COPYABLE:
+      raise errors.OpPrereqError("Disk template %s not suitable for copying" %
+                                 instance.disk_template, errors.ECODE_STATE)
+
     node = self.cfg.GetNodeInfo(self.op.target_node)
     assert node is not None, \
       "Cannot retrieve locked node %s" % self.op.target_node