diff --git a/reactos/subsystems/win32/win32k/ntuser/class.c b/reactos/subsystems/win32/win32k/ntuser/class.c index 5e8f074bb41..03e4f5db839 100644 --- a/reactos/subsystems/win32/win32k/ntuser/class.c +++ b/reactos/subsystems/win32/win32k/ntuser/class.c @@ -385,6 +385,8 @@ IntSetClassWndProc(IN OUT PCLS Class, Class->Unicode = !Ansi; } + if (!WndProc) WndProc = Class->lpfnWndProc; + chWndProc = WndProc; // Check if CallProc handle and retrieve previous call proc address and set. diff --git a/reactos/subsystems/win32/win32k/ntuser/window.c b/reactos/subsystems/win32/win32k/ntuser/window.c index 641db2cf99e..e561b709aee 100644 --- a/reactos/subsystems/win32/win32k/ntuser/window.c +++ b/reactos/subsystems/win32/win32k/ntuser/window.c @@ -663,6 +663,8 @@ IntSetWindowProc(PWND pWnd, if (pWnd->state & WNDS_SERVERSIDEWINDOWPROC) pWnd->state &= ~WNDS_SERVERSIDEWINDOWPROC; + if (!NewWndProc) NewWndProc = pWnd->lpfnWndProc; + if (Class->fnid <= FNID_GHOST && Class->fnid >= FNID_BUTTON) { if (Ansi)