#endif
 
 #include <errno.h>
+#include "wx/apptrait.h"
 #include "wx/evtloop.h"
 #include "wx/thread.h"
 #include "wx/module.h"
         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();
     wxTheApp->CheckSignal();
 }
 
+
+wxEventLoopBase *wxConsoleAppTraits::CreateEventLoop()
+{
+    return new wxEventLoop();
+}
+
 #endif // wxUSE_CONSOLE_EVENTLOOP