diff --git a/software/slaprunner/common.cfg b/software/slaprunner/common.cfg
index 0e67dc480ae7518966ab8d5a5cac243a70e207a8..c6b83d7037f6de266e1c51cb4c0eea356e0d2488 100644
--- a/software/slaprunner/common.cfg
+++ b/software/slaprunner/common.cfg
@@ -155,7 +155,7 @@ mode = 0644
 [template-listener-slapgrid]
 recipe = hexagonit.recipe.download
 url = ${:_profile_base_location_}/template/${:filename}
-md5sum = 46495fb218fc771547c5ef861cc30933
+md5sum = 8ab7c2930077017cc51daeeaff899888
 location = ${buildout:parts-directory}/${:_buildout_section_name_}
 filename = listener_slapgrid.py.in
 download-only = true
diff --git a/software/slaprunner/template/listener_slapgrid.py.in b/software/slaprunner/template/listener_slapgrid.py.in
index 4271891e96690cd2b4f0d36afa4edb2da9076ead..8e885a43c30f175331f29a95e4b89cccae17b786 100644
--- a/software/slaprunner/template/listener_slapgrid.py.in
+++ b/software/slaprunner/template/listener_slapgrid.py.in
@@ -17,23 +17,26 @@ def write_stderr(s):
     sys.stderr.flush()
 
 
-def write_slapgrid_result():
+def write_slapgrid_result(process):
     server = xmlrpclib.Server("http://{{- supervisord['server'] -}}")
     # Tuple of tuples containing 2 elements : process name and the path of its info file
-    watch_processes = (("slapgrid-sr", "{{- slaprunner['software_info_json'] -}}"),
-                       ("slapgrid-cp", "{{- slaprunner['instance_info_json'] -}}"))
-    for process, file in watch_processes:
-        info = server.supervisor.getProcessInfo(process)
-        result = dict()
-        result['last_build'] = datetime.datetime.fromtimestamp(info['stop']).strftime("%Y-%m-%d %H:%M:%S")
-        result['success'] = (1 if info['statename'] == "FATAL" else info['exitstatus'])
-        open(file, 'w').write(json.dumps(result))
+    json_files = dict([("slapgrid-sr", "{{- slaprunner['software_info_json'] -}}"),
+                       ("slapgrid-cp", "{{- slaprunner['instance_info_json'] -}}")])
+    info = server.supervisor.getProcessInfo(process)
+    result = dict()
+    result['last_build'] = datetime.datetime.fromtimestamp(info['stop']).strftime("%Y-%m-%d %H:%M:%S")
+    result['success'] = (1 if info['statename'] in ("FATAL", "STARTING", "BACKOFF") else info['exitstatus'])
+    open(json_files[process], 'w').write(json.dumps(result))
 
 
 def main():
     while 1:
         headers, payload = writer.wait()
-        write_slapgrid_result()
+        try:
+            processname = dict(x.split(':') for x in payload.split())['processname']
+            write_slapgrid_result(processname)
+        except:
+            pass
         writer.ok()
 
 if __name__ == '__main__':