return;
     }
 
-#ifdef wxUSE_EPOLL_DISPATCHER
-    m_dispatcher = wxEpollDispatcher::Get();
+    m_dispatcher = wxFDIODispatcher::Get();
     if ( !m_dispatcher )
-#endif // wxUSE_EPOLL_DISPATCHER
-#if wxUSE_SELECT_DISPATCHER
-        m_dispatcher = wxSelectDispatcher::Get();
-#endif // wxUSE_WCHAR_T
-
-    wxCHECK_RET( m_dispatcher, _T("failed to create IO dispatcher") );
+        return;
 
     m_dispatcher->RegisterFD
                   (
         timeout = wxFDIODispatcher::TIMEOUT_INFINITE;
     }
 
-    m_dispatcher->RunLoop(timeout);
+    m_dispatcher->Dispatch(timeout);
 
 #if wxUSE_TIMER
     wxTimerScheduler::Get().NotifyExpired();