proc connectAgent {agent} {
        global agents
 
-  chkAgent $agent
-       if {"$agents($agent.status)" == "up"} {
-               set agents($agent.addr) [eval c_agent connect $agents($agent.host)]
-       }
+    chkAgent $agent
+    if {"$agents($agent.status)" == "up"} {
+       set agents($agent.addr) [eval c_agent connect $agents($agent.host)]
+    } else {
+       #error "agent $agent not up"
+       while {"$agents($agent.status)" != "up"} {chkAgent $agent}
+       set agents($agent.addr) [eval c_agent connect $agents($agent.host)]
+    }
+       
 }
 
 proc disconnectAgent {agent} {