diff --git a/win32ss/user/user32/windows/defwnd.c b/win32ss/user/user32/windows/defwnd.c
index 27dcc57..26e606e 100644
--- a/win32ss/user/user32/windows/defwnd.c
+++ b/win32ss/user/user32/windows/defwnd.c
@@ -797,75 +797,6 @@ GoSS:
 }
 
 
-/*
- * helpers for calling IMM32 (from Wine 10/22/2008)
- *
- * WM_IME_* messages are generated only by IMM32,
- * so I assume imm32 is already LoadLibrary-ed.
- */
-static HWND
-DefWndImmGetDefaultIMEWnd(HWND hwnd)
-{
-    HINSTANCE hInstIMM = GetModuleHandleW(L"imm32\0");
-    HWND (WINAPI *pFunc)(HWND);
-    HWND hwndRet = 0;
-
-    if (!hInstIMM)
-    {
-        ERR("cannot get IMM32 handle\n");
-        return 0;
-    }
-
-    pFunc = (void*) GetProcAddress(hInstIMM, "ImmGetDefaultIMEWnd");
-    if (pFunc != NULL)
-        hwndRet = (*pFunc)(hwnd);
-
-    return hwndRet;
-}
-
-
-static BOOL
-DefWndImmIsUIMessageA(HWND hwndIME, UINT msg, WPARAM wParam, LPARAM lParam)
-{
-    HINSTANCE hInstIMM = GetModuleHandleW(L"imm32\0");
-    BOOL (WINAPI *pFunc)(HWND,UINT,WPARAM,LPARAM);
-    BOOL fRet = FALSE;
-
-    if (!hInstIMM)
-    {
-        ERR("cannot get IMM32 handle\n");
-        return FALSE;
-    }
-
-    pFunc = (void*) GetProcAddress(hInstIMM, "ImmIsUIMessageA");
-    if (pFunc != NULL)
-        fRet = (*pFunc)(hwndIME, msg, wParam, lParam);
-
-    return fRet;
-}
-
-
-static BOOL
-DefWndImmIsUIMessageW(HWND hwndIME, UINT msg, WPARAM wParam, LPARAM lParam)
-{
-    HINSTANCE hInstIMM = GetModuleHandleW(L"imm32\0");
-    BOOL (WINAPI *pFunc)(HWND,UINT,WPARAM,LPARAM);
-    BOOL fRet = FALSE;
-
-    if (!hInstIMM)
-    {
-        ERR("cannot get IMM32 handle\n");
-        return FALSE;
-    }
-
-    pFunc = (void*) GetProcAddress(hInstIMM, "ImmIsUIMessageW");
-    if (pFunc != NULL)
-        fRet = (*pFunc)(hwndIME, msg, wParam, lParam);
-
-    return fRet;
-}
-
-
 LRESULT WINAPI
 RealDefWindowProcA(HWND hWnd,
                    UINT Msg,
@@ -984,50 +915,16 @@ RealDefWindowProcA(HWND hWnd,
         }
 
         case WM_IME_KEYDOWN:
-        {
-            Result = PostMessageA(hWnd, WM_KEYDOWN, wParam, lParam);
-            break;
-        }
-
         case WM_IME_KEYUP:
-        {
-            Result = PostMessageA(hWnd, WM_KEYUP, wParam, lParam);
-            break;
-        }
-
         case WM_IME_CHAR:
-        {
-            if (HIBYTE(wParam))
-                PostMessageA(hWnd, WM_CHAR, HIBYTE(wParam), lParam);
-            PostMessageA(hWnd, WM_CHAR, LOBYTE(wParam), lParam);
-            break;
-        }
-
         case WM_IME_STARTCOMPOSITION:
         case WM_IME_COMPOSITION:
         case WM_IME_ENDCOMPOSITION:
         case WM_IME_SELECT:
         case WM_IME_NOTIFY:
         case WM_IME_CONTROL:
-        {
-            HWND hwndIME;
-
-            hwndIME = DefWndImmGetDefaultIMEWnd(hWnd);
-            if (hwndIME)
-                Result = SendMessageA(hwndIME, Msg, wParam, lParam);
-            break;
-        }
-
         case WM_IME_SETCONTEXT:
-        {
-            HWND hwndIME;
-
-            hwndIME = DefWndImmGetDefaultIMEWnd(hWnd);
-            if (hwndIME)
-                Result = DefWndImmIsUIMessageA(hwndIME, Msg, wParam, lParam);
             break;
-        }
-
         /* fall through */
         default:
             Result = User32DefWindowProc(hWnd, Msg, wParam, lParam, FALSE);
@@ -1147,48 +1044,16 @@ RealDefWindowProcW(HWND hWnd,
         }
 
         case WM_IME_CHAR:
-        {
-            PostMessageW(hWnd, WM_CHAR, wParam, lParam);
-            Result = 0;
-            break;
-        }
-
         case WM_IME_KEYDOWN:
-        {
-            Result = PostMessageW(hWnd, WM_KEYDOWN, wParam, lParam);
-            break;
-        }
-
         case WM_IME_KEYUP:
-        {
-            Result = PostMessageW(hWnd, WM_KEYUP, wParam, lParam);
-            break;
-        }
-
         case WM_IME_STARTCOMPOSITION:
         case WM_IME_COMPOSITION:
         case WM_IME_ENDCOMPOSITION:
         case WM_IME_SELECT:
         case WM_IME_NOTIFY:
         case WM_IME_CONTROL:
-        {
-            HWND hwndIME;
-
-            hwndIME = DefWndImmGetDefaultIMEWnd(hWnd);
-            if (hwndIME)
-                Result = SendMessageW(hwndIME, Msg, wParam, lParam);
-            break;
-        }
-
         case WM_IME_SETCONTEXT:
-        {
-            HWND hwndIME;
-
-            hwndIME = DefWndImmGetDefaultIMEWnd(hWnd);
-            if (hwndIME)
-                Result = DefWndImmIsUIMessageW(hwndIME, Msg, wParam, lParam);
             break;
-        }
 
         default:
             Result = User32DefWindowProc(hWnd, Msg, wParam, lParam, TRUE);
