diff --git a/cloudcontrol/node/hypervisor/__init__.py b/cloudcontrol/node/hypervisor/__init__.py
index 75bdee7c4228e89490d1fb4b35f21702c5fc1432..e4c137a61889e900318e78d2d55b36ed4885ff5e 100644
--- a/cloudcontrol/node/hypervisor/__init__.py
+++ b/cloudcontrol/node/hypervisor/__init__.py
@@ -144,6 +144,7 @@ class Handler(HostHandler):
         self.main.reset_handler('vm_open_console', self.vm_open_console)
         self.main.reset_handler('vm_disable_virtio_cache',
                                 self.vm_disable_virtio_cache)
+        self.main.reset_handler('vm_set_autostart', self.vm_set_autostart)
 
         # if everything went fine, unregister the timer
         self.timer.stop()
@@ -208,6 +209,7 @@ class Handler(HostHandler):
         self.main.remove_handler('drbd_shutdown')
         self.main.remove_handler('vm_open_console')
         self.main.remove_handler('vm_disable_virtio_cache')
+        self.main.remove_handler('vm_set_autostart')
         # launch connection timer
         self.timer.start()
 
@@ -546,6 +548,17 @@ class Handler(HostHandler):
             logger.exception('Cannot update XML file for domain %s', name)
             raise
 
+    def vm_set_autostart(self, name, autostart=True):
+        """Set autostart on VM.
+
+        :param name: VM name
+        :param bool autostart: autostart value to set
+        """
+        vm = self.hypervisor.domains[name]
+        vm.lv_dom.setAutostart(int(bool(autostart)))
+        # update autostart value now instead of 10 seconds lag
+        vm.tags['autostart'].update_value()
+
     def vol_create(self, pool, name, size):
         logger.debug('Volume create %s, pool %s, size %s', name, pool, size)
         try: