diff --git a/winvnc/ControlPanel.h b/winvnc/ControlPanel.h
index 5f9bc24..51eb421 100644
--- a/winvnc/ControlPanel.h
+++ b/winvnc/ControlPanel.h
@@ -10,33 +10,30 @@
 
 
 #include <list>
-
-#include <winvnc/VNCServerWin32.h>
 #include <winvnc/resource.h>
 #include <rfb_win32/Dialog.h>
 #include <rfb_win32/ListViewControl.h>
 #include <rfb_win32/Win32Util.h>
+#include <rfb/ListConnInfo.h>
 
 namespace winvnc {
   
   class ControlPanel : rfb::win32::Dialog, rfb::win32::ListViewControl {
   public:
-    ControlPanel(VNCServerWin32 * server, HWND hSTIcon) : Dialog(GetModuleHandle(0)), ListViewControl(){
-      m_server = server;
+    ControlPanel(HWND hSTIcon) : Dialog(GetModuleHandle(0)), ListViewControl(){
       m_hSTIcon = hSTIcon;
     };
     virtual bool showDialog();
     virtual void initDialog();
     virtual bool onCommand(int cmd);
-    void UpdateListView();
+    void UpdateListView(rfb::ListConnInfo* LCInfo);
     HWND GetHandle() {return handle;};
     ~ControlPanel();
   protected: 
     virtual BOOL dialogProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
-    void getSelectedConn(std::list<network::Socket*>* selsockets);
-    VNCServerWin32 * m_server;
-    std::list<network::Socket*> sockets;
+    void getSelConnInfo(std::list<DWORD>* conn, std::list<int>* status);
     HWND m_hSTIcon;
+    std::list<DWORD> Conn;
   };
 };
 
