X-Git-Url: http://www.lcore.org/git/lcore.git/blobdiff_plain/987e8123d8ba3201ed2690004cfefd7983ff7487..9036dab6e8ad5001d2354bb378096f957f8cabd6:/lmessages.pas

diff --git a/lmessages.pas b/lmessages.pas
index 1b7db62..e17ccfe 100755
--- a/lmessages.pas
+++ b/lmessages.pas
@@ -409,11 +409,15 @@ begin
       //we have to get the window procedure while the structurelock
       //is still held as the window could be destroyed from another thread
       //otherwise.
-      windowproc := window.windowproc;
+      if window <> nil then begin
+        windowproc := window.windowproc;
+      end else begin
+        windowproc := nil;
+      end;
     finally
       structurelock.release;
     end;
-    if window <> nil then begin
+    if assigned(windowproc) then begin
       result := windowproc(lpmsg.hwnd,lpmsg.message,lpmsg.wparam,lpmsg.lparam);
     end else begin
       result := -1;
@@ -490,7 +494,7 @@ end;
 
 function PeekMessage(var lpMsg: TMsg; hWnd: HWND; wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): WINBOOL;
 begin
-  result := getmessageinternal(lpmsg,hwnd,wmsgfiltermin,wmsgfiltermax,PM_REMOVE,true);
+  result := getmessageinternal(lpmsg,hwnd,wmsgfiltermin,wmsgfiltermax,wRemoveMsg,true);
 end;
 
 function SetEvent(hEvent:THevent):WINBOOL;