diff --git a/slapos/recipe/erp5.recipe.testnode/setup.py b/slapos/recipe/erp5.recipe.testnode/setup.py
index b8b5837abc2e7d26b0dffb37b1471e72fc13e39e..80cf5bb4e0712dfd1457ef6d652ca38f4249ae99 100644
--- a/slapos/recipe/erp5.recipe.testnode/setup.py
+++ b/slapos/recipe/erp5.recipe.testnode/setup.py
@@ -1,7 +1,7 @@
 from setuptools import setup, find_packages
 
 name = "erp5.recipe.testnode"
-version = '1.0.5'
+version = '1.0.11'
 
 def read(name):
   return open(name).read()
diff --git a/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/SlapOSControler.py b/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/SlapOSControler.py
index e86f33abdd6aa224e8234c32dfd1ed1c0bb6f6d0..d3e54488dd1759113d441b2a4043b7eacdb1535d 100644
--- a/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/SlapOSControler.py
+++ b/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/SlapOSControler.py
@@ -56,16 +56,15 @@ class SlapOSControler(object):
       slapgrid = subprocess.Popen([config['slapgrid_software_binary'], '-v', '-c',
         #'--buildout-parameter',"'-U -N' -o",
         config['slapos_config']],
+        stdout=subprocess.PIPE, stderr=subprocess.PIPE,
         close_fds=True, preexec_fn=os.setsid)
       process_group_pid_list.append(slapgrid.pid)
       slapgrid.wait()
-      if slapgrid.returncode == 0:
-        print 'Software installed properly'
-        break
-      else:
-        raise ValueError("Slapgrid software failed")
-      print 'Problem with software installation, trying again'
-      time.sleep(600)
+      stdout, stderr = slapgrid.communicate()
+      status_dict = {'status_code':slapgrid.returncode,
+                     'stdout':stdout,
+                     'stderr':stderr}
+      return status_dict
 
   def runComputerPartition(self, config, process_group_pid_list=None):
     print "SlapOSControler.runSoftwareRelease"
diff --git a/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/__init__.py b/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/__init__.py
index a6ba8dd01cdc7e5eb18a49a71b78759b55106908..4177d2f556eeebb2c76f3727850d0544202be680 100644
--- a/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/__init__.py
+++ b/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/__init__.py
@@ -73,7 +73,7 @@ class Recipe(BaseSlapRecipe):
               ipv4_address=self.getLocalIPv4Address(),
               ipv6_address=self.getGlobalIPv6Address(),
               master_url=CONFIG['master_url'],
-              profile_url=self.parameter_dict['profile_url'],
+              profile_path=self.parameter_dict['profile_path'],
               proxy_database=CONFIG['proxy_database'],
               proxy_port=CONFIG['proxy_port'],
               slapgrid_partition_binary=self.options['slapgrid_partition_binary'],
@@ -89,8 +89,7 @@ class Recipe(BaseSlapRecipe):
               test_suite_master_url=self.parameter_dict.get(
                                 'test_suite_master_url', None),
               test_suite_name=self.parameter_dict.get('test_suite_name'),
-              #slave_name=self.parameter_dict['slave_name'],
-              #slave_password=self.parameter_dict['slave_password'],
+              test_suite_title=self.parameter_dict.get('test_suite_title'),
               bin_directory=self.bin_directory,
               foo='bar',
               # botenvironemnt is splittable string of key=value to substitute
diff --git a/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/testnode.py b/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/testnode.py
index 8b02f64ac809cc1c09d5796b5deda168bdc3cecc..943984be2d4c6c523720391a2e00c1a916995cc8 100644
--- a/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/testnode.py
+++ b/slapos/recipe/erp5.recipe.testnode/src/erp5/recipe/testnode/testnode.py
@@ -85,7 +85,7 @@ extends = %(software_config_path)s
 [%(repository_name)s]
 repository = %(repository_path)s
 """ %     {'software_config_path': os.path.join(repository_path,
-                                          config['profile_url']),
+                                          config['profile_path']),
     'repository_name': repository_name,
     'repository_path' : repository_path}
   if branch is not None:
@@ -126,7 +126,7 @@ repository = %(repository_path)s
         assert master.getProtocolRevision() == 1
         test_result = safeRpcCall(master.createTestResult,
           config['test_suite_name'], revision, [],
-          False)
+          False, config['test_suite_title'])
       print "testnode, test_result : %r" % (test_result,)
       if test_result:
         test_result_path, test_revision = test_result
@@ -142,10 +142,14 @@ repository = %(repository_path)s
           process_group_pid_list=process_group_pid_list)
         if run_software:
           # this should be always true later, but it is too slow for now
-          slapos_controler.runSoftwareRelease(config,
+          status_dict = slapos_controler.runSoftwareRelease(config,
             environment=config['environment'],
             process_group_pid_list=process_group_pid_list,
             )
+          if status_dict['status_code'] != 0:
+            safeRpcCall(master.reportTaskFailure,
+              test_result_path, status_dict, config['test_suite_title'])
+            continue
           run_software = False
 
         # create instances, it should take some seconds only