Index: /trunk/FACT++/scripts/Main.js
===================================================================
--- /trunk/FACT++/scripts/Main.js	(revision 15377)
+++ /trunk/FACT++/scripts/Main.js	(revision 15378)
@@ -308,63 +308,49 @@
     // Here we could check and handle fad losses
 
-    try
-    {
-        dim.wait("MCP", "TakingData", 15000);
-    }
-    catch (e)
-    {
-        console.out("");
-        console.out("MCP:         "+dim.state("MCP").name);
-        console.out("FAD_CONTROL: "+dim.state("FAD_CONTROL").name);
-        console.out("FTM_CONTROL: "+dim.state("FTM_CONTROL").name);
-        console.out("");
-
-        if (dim.state("MCP").name!="Configuring3" ||
-            dim.state("FAD_CONTROL").name!="Configuring2")
-            throw e;
-
-        console.out("");
-        console.out("Waiting for fadctrl to get configured timed out... checking for in-run FAD loss.");
-
-        var con  = sub_connections.get();
-        var stat = con.obj['status'];
-
-        console.out("Sending MCP/RESET");
-        dim.send("MCP/RESET");
-
-        dim.wait("FTM_CONTROL", "Idle",      3000);
-        dim.wait("FAD_CONTROL", "Connected", 3000);
-        dim.wait("MCP",         "Idle",      3000);
-
-        /*** FOR REMOVE ***/
-        /*
-        var reset = [ ];
-
-        for (var i=0; i<40; i++)
-            if (stat[i]!=0x43)
-            {
-                console.out("  FAD %2d".$(i)+" not in Configured state.");
-                reset.push(parseInt(i/10));
-            }
-
-        reset = reset.filter(function(elem,pos){return reset.indexOf(elem)==pos;});
-
-        if (reset.length>0)
+    for (var n=0; n<3; n++)
+    {
+        try
+        {
+            dim.wait("MCP", "TakingData", 15000);
+        }
+        catch (e)
         {
             console.out("");
-            console.out("  FADs belong to crate(s): "+reset);
+            console.out("MCP:         "+dim.state("MCP").name);
+            console.out("FAD_CONTROL: "+dim.state("FAD_CONTROL").name);
+            console.out("FTM_CONTROL: "+dim.state("FTM_CONTROL").name);
             console.out("");
-        }*/
-        /**** FOR REMOVE ****/
-
-        var list = [];
-        for (var i=0; i<40; i++)
-            if (stat[i]!=0x43)
-                list.push(i);
-
-        reconnect(list, "configuration");
-
-        return false;
-    }
+
+            if (dim.state("MCP").name!="Configuring3" ||
+                dim.state("FAD_CONTROL").name!="Configuring2")
+                throw e;
+
+            console.out("");
+            console.out("Waiting for fadctrl to get configured timed out... checking for in-run FAD loss.");
+
+            var con  = sub_connections.get();
+            var stat = con.obj['status'];
+
+            console.out("Sending MCP/RESET");
+            dim.send("MCP/RESET");
+
+            dim.wait("FTM_CONTROL", "Idle",      3000);
+            dim.wait("FAD_CONTROL", "Connected", 3000);
+            dim.wait("MCP",         "Idle",      3000);
+
+            var list = [];
+            for (var i=0; i<40; i++)
+                if (stat[i]!=0x43)
+                    list.push(i);
+
+            reconnect(list, "configuration");
+
+            if (n<2)
+                return false;
+
+            throw e;
+        }
+    }
+
 
     dim.wait("MCP", "Idle", time>0 ? time*1250 : undefined); // run time plus 25%
@@ -1248,5 +1234,5 @@
 
         var len = 300;
-        while (len>0)
+        while (len>15)
         {
             var time = new Date();
