Index: trunk/FACT++/gui/MainWindow.cc
===================================================================
--- trunk/FACT++/gui/MainWindow.cc	(revision 11111)
+++ trunk/FACT++/gui/MainWindow.cc	(revision 11112)
@@ -208,4 +208,14 @@
 }
 
+void MainWindow::slot_fFadLED_clicked()
+{
+    for (int32_t i=0; i<40; i++)
+        if (sender()==fFadLED[i])
+        {
+            Dim::SendCommand("FAD_CONTROL/TOGGLE", i);
+            break;
+        }
+}
+
 void MainWindow::SetTriggerSequence()
 {
Index: trunk/FACT++/gui/MainWindow.h
===================================================================
--- trunk/FACT++/gui/MainWindow.h	(revision 11111)
+++ trunk/FACT++/gui/MainWindow.h	(revision 11112)
@@ -121,5 +121,5 @@
 
     // Tab: FADs
-    void slot_fFadLED_clicked() { }
+    void slot_fFadLED_clicked();
 
     // Tab: Chat
Index: trunk/FACT++/src/fadctrl.cc
===================================================================
--- trunk/FACT++/src/fadctrl.cc	(revision 11111)
+++ trunk/FACT++/src/fadctrl.cc	(revision 11112)
@@ -1108,4 +1108,23 @@
         if (it==fBoards.end())
             return T::GetCurrentState();
+
+        EnableConnection(it->second, enable);
+        ConnectSlot(it->first, enable ? it->second.first : tcp::endpoint());
+
+        return T::GetCurrentState();
+    }
+
+    int ToggleSlot(const EventImp &evt)
+    {
+        if (!CheckEventSize(evt.GetSize(), "ToggleSlot", 2))
+            return T::kSM_FatalError;
+
+        const int16_t slot = evt.GetShort();
+
+        const BoardList::iterator it = GetSlot(slot);
+        if (it==fBoards.end())
+            return T::GetCurrentState();
+
+        const bool enable = it->second.second->IsDisconnected() && fStatus2[slot]==0;
 
         EnableConnection(it->second, enable);
@@ -1460,4 +1479,8 @@
             ("Disconnect a connected slot.");
 
+        T::AddEvent("TOGGLE", "S:1", FAD::kDisconnected, FAD::kConnecting, FAD::kConnected)
+            (boost::bind(&StateMachineFAD::ToggleSlot, this, _1))
+            ("");
+
         T::AddEvent("CLOSE_OPEN_FILES", FAD::kConnecting, FAD::kConnected)
             (boost::bind(&StateMachineFAD::CloseOpenFiles, this))
