#endif //WX_PRECOMP
 
 #include "wx/apptrait.h"
+#include "wx/os2/private/timer.h"
+#include "wx/evtloop.h"
 
 #include "wx/os2/private.h"     // includes <windows.h>
 
 void wxEndBusyCursor()
 {
     wxCHECK_RET( gs_wxBusyCursorCount > 0
-                ,_T("no matching wxBeginBusyCursor() for wxEndBusyCursor()")
+                ,wxT("no matching wxBeginBusyCursor() for wxEndBusyCursor()")
                );
 
     if (--gs_wxBusyCursorCount == 0)
     }
     else
     {
-        wxFAIL_MSG(_T("pWnd==NULL !!!"));
+        wxFAIL_MSG(wxT("pWnd==NULL !!!"));
         return false;//*** temporary?
     }
 }
     return wxPORT_OS2;
 }
 
+wxTimerImpl* wxGUIAppTraits::CreateTimerImpl(wxTimer *timer)
+{
+    return new wxOS2TimerImpl(timer);
+}
+
+wxEventLoopBase* wxGUIAppTraits::CreateEventLoop()
+{
+    return new wxEventLoop;
+}
 
 // ---------------------------------------------------------------------------
 // window information functions