diff --git a/tes/sshwrapper/__init__.py b/tes/sshwrapper/__init__.py
index cea74a6f58038b011f1b1278853cf3a24aef7e91..20161f29cdf272a6b6087b764eaaf61223b2d629 100644
--- a/tes/sshwrapper/__init__.py
+++ b/tes/sshwrapper/__init__.py
@@ -157,34 +157,25 @@ class Ssh:
             logger.debug("spanwed ssh mux with pid {}".format(ctrl_p.pid))
             #sess.pids.append(ctrl_p.pid)
             sess.ctrl_processes[ctrlsocket] = ctrl_p
-            DOUBLECHECK=True
-            if DOUBLECHECK:
-                import time
-                time.sleep(1)
+            notstarted = True
+            notdead = True
+            wait=0
+            while notstarted and notdead:
                 ctrl_p.poll()
                 if ctrl_p.returncode != None:
+                    notdead = False
                     (stdout,stderr) = ctrl_p.communicate()
                     logger.error('ctrl_p died {} {} {}'.format(ctrl_p.returncode,stdout,stderr))
-        else:
-            ctrl_p = sess.ctrl_processes[ctrlsocket]
-        try:
-            mode = os.stat(ctrlsocket).st_mode
-        except FileNotFoundError:
-            import time
-            time.sleep(5)
-        try:
-            mode = os.stat(ctrlsocket).st_mode
-        except FileNotFoundError:
-            mode = None
-            ctrl_p.kill()
-            (stdout,stderr) = ctrl_p.communicate()
-            logger.error('control socket error {} {}'.format(stdout,stderr))
-            raise SshCtrlException(stderr.decode())
-        if not stat.S_ISSOCK(mode):
-            ctrl_p.kill()
-            (stdout,stderr) = ctrl_p.communicate()
-            logger.error('control socket error {} {}'.format(stdout,stderr))
-            raise SshCtrlException(stderr.decode())
+                    raise SshCtrlException(stderr.decode())
+                try:
+                    mode = os.stat(ctrlsocket).st_mode
+                    notstarted=False
+                except FileNotFoundError:
+                    logger.debug('ctrl_p not started yet')
+                    time.sleep(0.5)
+                    wait=wait+1
+                if wait>60:
+                    ctrl_p.kill()
 
         sess.lock.release()
         return ctrlsocket