-{ Copyright (C) 2005 Bas Steendijk and Peter Green\r
-  For conditions of distribution and use, see copyright notice in zlib_license.txt\r
-  which is included in the package\r
-  ----------------------------------------------------------------------------- }\r
-\r
 unit wcore;\r
 \r
 {\r
 var\r
     MsgRec : TMessage;\r
     a:integer;\r
-    handled:boolean;\r
 begin\r
   Result := 0;  // This means we handled the message\r
 \r
-  handled := false;\r
-\r
   {MsgRec.hwnd    := ahWnd;}\r
   MsgRec.wParam  := awParam;\r
   MsgRec.lParam  := alParam;\r
 \r
-  if (ahwnd = hwndwcore) then begin\r
-   dotasks;\r
-   case auMsg of\r
+  dotasks;\r
+  case auMsg of\r
     {$ifndef threadtimer}\r
     WM_TIMER: begin\r
-      handled := true;\r
       if msgrec.wparam = timerid_wcore then begin\r
         a := wcore_timehandler;\r
         killtimer(hwndwcore,timerid_wcore);\r
     {WINMSG_TASK:dotasks;}\r
 \r
     WM_CLOSE: begin\r
-      handled := true;\r
+      {}\r
     end;\r
     WM_DESTROY: begin\r
-      handled := true;\r
+      {}\r
     end;\r
-   end;\r
+  else\r
+      Result := DefWindowProc(ahWnd, auMsg, awParam, alParam)\r
   end;\r
-\r
-  if not handled then Result := DefWindowProc(ahWnd, auMsg, awParam, alParam)\r
 end;\r
 \r
 \r
     Result := FALSE;\r
     if PeekMessage(Msg, 0, 0, 0, PM_REMOVE) then begin\r
       Result := TRUE;\r
+      TranslateMessage(MsgRec);\r
       DispatchMessage(Msg);\r
     end;\r
 end;\r
 \r
 \r
 end.\r
+\r