diff --git a/slapos/tests/slapgrid.py b/slapos/tests/slapgrid.py
index 16800deff08911a09d81baa92a8a066f4c38eaf7..9666a1f4618cb3fa340880b1b80ff4e752437504 100644
--- a/slapos/tests/slapgrid.py
+++ b/slapos/tests/slapgrid.py
@@ -168,7 +168,6 @@ class TestSlapgridCPWithMaster(MasterMixin, unittest.TestCase):
         slap_computer._software_release_list = []
         partition = slapos.slap.ComputerPartition(parsed_qs['computer_id'],
             '0')
-        partition._need_modification = True
         sr = slapos.slap.SoftwareRelease()
         sr._software_release = 'http://sr/'
         partition._software_release_document = sr
@@ -228,7 +227,6 @@ touch worked""")
         slap_computer._software_release_list = []
         partition = slapos.slap.ComputerPartition(parsed_qs['computer_id'],
             '0')
-        partition._need_modification = True
         sr = slapos.slap.SoftwareRelease()
         sr._software_release = 'http://sr/'
         partition._software_release_document = sr
@@ -305,7 +303,6 @@ chmod 755 etc/run/wrapper
         slap_computer._software_release_list = []
         partition = slapos.slap.ComputerPartition(parsed_qs['computer_id'],
             '0')
-        partition._need_modification = True
         sr = slapos.slap.SoftwareRelease()
         sr._software_release = 'http://sr/'
         partition._software_release_document = sr
@@ -390,7 +387,6 @@ chmod 755 etc/run/wrapper
         slap_computer._software_release_list = []
         partition = slapos.slap.ComputerPartition(parsed_qs['computer_id'],
             '0')
-        partition._need_modification = True
         sr = slapos.slap.SoftwareRelease()
         sr._software_release = 'http://sr/'
         partition._software_release_document = sr
@@ -447,7 +443,6 @@ chmod 755 etc/run/wrapper
         slap_computer._software_release_list = []
         partition = slapos.slap.ComputerPartition(parsed_qs['computer_id'],
             '0')
-        partition._need_modification = True
         sr = slapos.slap.SoftwareRelease()
         sr._software_release = 'http://sr/'
         partition._software_release_document = sr
@@ -514,7 +509,6 @@ chmod 755 etc/run/wrapper
         slap_computer._software_release_list = []
         partition = slapos.slap.ComputerPartition(parsed_qs['computer_id'],
             '0')
-        partition._need_modification = True
         sr = slapos.slap.SoftwareRelease()
         sr._software_release = 'http://sr/'
         partition._software_release_document = sr
@@ -571,26 +565,28 @@ chmod 755 etc/run/wrapper
         slap_computer._software_release_list = []
         partition = slapos.slap.ComputerPartition(parsed_qs['computer_id'],
             '0')
-        partition._need_modification = True
         sr = slapos.slap.SoftwareRelease()
         sr._software_release = 'http://sr/'
         partition._software_release_document = sr
-        partition._requested_state = 'stopped'
+        partition._requested_state = 'started'
         partition._parameter_dict = {'timestamp': self.timestamp} 
         slap_computer._computer_partition_list = [partition]
         return (200, {}, xml_marshaller.xml_marshaller.dumps(slap_computer))
       if parsed_url.path == 'availableComputerPartition' and \
             method == 'POST' and 'computer_partition_id' in parsed_qs:
         return (200, {}, '')
-      if parsed_url.path == 'stoppedComputerPartition' and \
+      if parsed_url.path == 'startedComputerPartition' and \
             method == 'POST' and 'computer_partition_id' in parsed_qs:
+        self.assertEqual(parsed_qs['computer_partition_id'][0], '0')
+        self.started = True
         return (200, {}, '')
       else:
         return (404, {}, '')
 
     httplib.HTTPConnection._callback = server_response
     self.sequence = []
-    self.timestamp = str(time.time())
+    self.timestamp = str(int(time.time()))
+    self.started = False
 
     os.mkdir(self.software_root)
     os.mkdir(self.instance_root)
@@ -604,55 +600,34 @@ chmod 755 etc/run/wrapper
     srbindir = os.path.join(srdir, 'bin')
     os.mkdir(srbindir)
     open(os.path.join(srbindir, 'buildout'), 'w').write("""#!/bin/sh
-touch worked""")
+touch worked &&
+mkdir -p etc/run &&
+echo "#!/bin/sh" > etc/run/wrapper &&
+echo "while :; do echo "Working\\nWorking\\n" ; done" >> etc/run/wrapper &&
+chmod 755 etc/run/wrapper
+""")
     os.chmod(os.path.join(srbindir, 'buildout'), 0755)
     self.assertTrue(self.grid.processComputerPartitionList())
     self.assertSortedListEqual(os.listdir(self.instance_root), ['0', 'etc',
       'var'])
-    partition = os.path.join(self.instance_root, '0')
-    self.assertSortedListEqual(os.listdir(partition), ['.timestamp','worked',
-      'buildout.cfg'])
+    self.assertSortedListEqual(os.listdir(partition_path), ['.0_wrapper.log',
+      'worked', 'buildout.cfg', 'etc','.timestamp'])
+    tries = 10
+    wrapper_log = os.path.join(partition_path, '.0_wrapper.log')
+    while tries > 0:
+      tries -= 1
+      if os.path.getsize(wrapper_log) > 0:
+        break
+      time.sleep(0.2)
+    self.assertTrue('Working' in open(wrapper_log, 'r').read())
     self.assertSortedListEqual(os.listdir(self.software_root),
       [software_hash])
-
-    def server_response(self_httplib, path, method, body, header):
-      parsed_url = urlparse.urlparse(path.lstrip('/'))
-      self.sequence.append(parsed_url.path)
-      if method == 'GET':
-        parsed_qs = urlparse.parse_qs(parsed_url.query)
-      else:
-        parsed_qs = urlparse.parse_qs(body)
-      if parsed_url.path == 'getFullComputerInformation' and \
-         'computer_id' in parsed_qs:
-        slap_computer = slapos.slap.Computer(parsed_qs['computer_id'])
-        slap_computer._software_release_list = []
-        partition = slapos.slap.ComputerPartition(parsed_qs['computer_id'],
-            '0')
-        partition._need_modification = False
-        sr = slapos.slap.SoftwareRelease()
-        sr._software_release = 'http://sr/'
-        partition._software_release_document = sr
-        partition._requested_state = 'stopped'
-        partition._parameter_dict = {'timestamp': self.timestamp} 
-        slap_computer._computer_partition_list = [partition]
-        return (200, {}, xml_marshaller.xml_marshaller.dumps(slap_computer))
-      if parsed_url.path == 'availableComputerPartition' and \
-            method == 'POST' and 'computer_partition_id' in parsed_qs:
-        return (200, {}, '')
-      if parsed_url.path == 'stoppedComputerPartition' and \
-            method == 'POST' and 'computer_partition_id' in parsed_qs:
-        return (200, {}, '')
-      else:
-        return (404, {}, '')
-
     self.setSlapgrid()
-    self.grid.develop = True
-    httplib.HTTPConnection._callback = server_response
     self.assertTrue(self.grid.processComputerPartitionList())
     self.assertEqual(self.sequence,
                      ['getFullComputerInformation', 'availableComputerPartition',
-                      'stoppedComputerPartition', 'getFullComputerInformation'])
-
+                      'startedComputerPartition', 'getFullComputerInformation'])
+  
 
 
 
@@ -753,7 +728,6 @@ class TestSlapgridCPWithMasterPromise(MasterMixin, unittest.TestCase):
         slap_computer._software_release_list = []
         partition = slapos.slap.ComputerPartition(parsed_qs['computer_id'][0],
             '0')
-        partition._need_modification = True
         sr = slapos.slap.SoftwareRelease()
         sr._software_release = 'http://sr/'
         partition._software_release_document = sr
@@ -815,7 +789,6 @@ exit 127""" % {'worked_file': worked_file})
         slap_computer._software_release_list = []
         partition = slapos.slap.ComputerPartition(parsed_qs['computer_id'][0],
             '0')
-        partition._need_modification = True
         sr = slapos.slap.SoftwareRelease()
         sr._software_release = 'http://sr/'
         partition._software_release_document = sr
@@ -877,7 +850,6 @@ exit 0""" % {'worked_file': worked_file})
         slap_computer._software_release_list = []
         partition = slapos.slap.ComputerPartition(parsed_qs['computer_id'][0],
             '0')
-        partition._need_modification = True
         sr = slapos.slap.SoftwareRelease()
         sr._software_release = 'http://sr/'
         partition._software_release_document = sr
@@ -945,7 +917,6 @@ exit 127""" % {'worked_file': worked_file})
         slap_computer._software_release_list = []
         partition = slapos.slap.ComputerPartition(parsed_qs['computer_id'][0],
             '0')
-        partition._need_modification = True
         sr = slapos.slap.SoftwareRelease()
         sr._software_release = 'http://sr/'
         partition._software_release_document = sr
@@ -1013,7 +984,6 @@ exit 0""" % {'worked_file': worked_file})
         slap_computer._software_release_list = []
         partition = slapos.slap.ComputerPartition(parsed_qs['computer_id'][0],
             '0')
-        partition._need_modification = True
         sr = slapos.slap.SoftwareRelease()
         sr._software_release = 'http://sr/'
         partition._software_release_document = sr
@@ -1086,7 +1056,6 @@ exit 0""" % {'worked_file': worked_file_2})
         slap_computer._software_release_list = []
         partition = slapos.slap.ComputerPartition(parsed_qs['computer_id'][0],
             '0')
-        partition._need_modification = True
         sr = slapos.slap.SoftwareRelease()
         sr._software_release = 'http://sr/'
         partition._software_release_document = sr
@@ -1160,7 +1129,6 @@ fi""" % {'worked_file': worked_file, 'lockfile': lockfile})
         slap_computer._software_release_list = []
         partition = slapos.slap.ComputerPartition(parsed_qs['computer_id'][0],
             '0')
-        partition._need_modification = True
         sr = slapos.slap.SoftwareRelease()
         sr._software_release = 'http://sr/'
         partition._software_release_document = sr