private:
     // these functions map directly to XtAdd/RemoveInput() or
     // gdk_input_add/remove()
-    virtual int AddInput(wxFDIOHandler *handler, int fd, SocketDir d) = 0;
+    virtual int AddInput(wxSocketImpl *handler, int fd, SocketDir d) = 0;
     virtual void RemoveInput(int fd) = 0;
 };
 
 
                         gint WXUNUSED(source),
                         GdkInputCondition condition)
 {
-    wxFDIOHandler * const handler = static_cast<wxFDIOHandler *>(data);
+    wxSocketImpl * const handler = static_cast<wxSocketImpl *>(data);
 
     if ( condition & GDK_INPUT_READ )
         handler->OnReadWaiting();
 class GTKSocketManager : public wxSocketInputBasedManager
 {
 public:
-    virtual int AddInput(wxFDIOHandler *handler, int fd, SocketDir d)
+    virtual int AddInput(wxSocketImpl *handler, int fd, SocketDir d)
     {
         return gdk_input_add
                (
 
                         gint WXUNUSED(source),
                         GdkInputCondition condition)
 {
-    wxFDIOHandler * const handler = static_cast<wxFDIOHandler *>(data);
+    wxSocketImpl * const handler = static_cast<wxSocketImpl *>(data);
 
     if ( condition & GDK_INPUT_READ )
         handler->OnReadWaiting();
 class GTKSocketManager : public wxSocketInputBasedManager
 {
 public:
-    virtual int AddInput(wxFDIOHandler *handler, int fd, SocketDir d)
+    virtual int AddInput(wxSocketImpl *handler, int fd, SocketDir d)
     {
         return gdk_input_add
                (
 
 static void wxSocket_Motif_Input(XtPointer data, int *WXUNUSED(fid),
                                  XtInputId *WXUNUSED(id))
 {
-    wxFDIOHandler * const handler = static_cast<wxFDIOHandler *>(data);
+    wxSocketImpl * const handler = static_cast<wxSocketImpl *>(data);
 
     handler->OnReadWaiting();
 }
 static void wxSocket_Motif_Output(XtPointer data, int *WXUNUSED(fid),
                                   XtInputId *WXUNUSED(id))
 {
-    wxFDIOHandler * const handler = static_cast<wxFDIOHandler *>(data);
+    wxSocketImpl * const handler = static_cast<wxSocketImpl *>(data);
 
     handler->OnWriteWaiting();
 }
 class MotifSocketManager : public wxSocketInputBasedManager
 {
 public:
-    virtual int AddInput(wxFDIOHandler *handler, int fd, SocketDir d)
+    virtual int AddInput(wxSocketImpl *handler, int fd, SocketDir d)
     {
         return XtAppAddInput
                (
 
 
 static void wxSocket_PM_Input(void *data)
 {
-    wxFDIOHandler *handler = static_cast<wxFDIOHandler *>(data);
+    wxSocketImpl *handler = static_cast<wxSocketImpl *>(data);
 
     handler->OnReadWaiting();
 }
 
 static void wxSocket_PM_Output(void *data)
 {
-    wxFDIOHandler *handler = static_cast<wxFDIOHandler *>(data);
+    wxSocketImpl *handler = static_cast<wxSocketImpl *>(data);
 
     handler->OnWriteWaiting();
 }
 class PMSocketManager : public wxSocketInputBasedManager
 {
 public:
-    virtual int AddInput(wxFDIOHandler *handler, int fd, SocketDir d)
+    virtual int AddInput(wxSocketImpl *handler, int fd, SocketDir d)
     {
       if (d == FD_OUTPUT)
           return wxTheApp->AddSocketHandler(fd, wxSockWriteMask,