diff --git a/dlls/shdocvw/iexplore.c b/dlls/shdocvw/iexplore.c
index b39e293..62bc81c 100644
--- a/dlls/shdocvw/iexplore.c
+++ b/dlls/shdocvw/iexplore.c
@@ -580,3 +580,33 @@
 
     return hres;
 }
+
+/******************************************************************
+ *		IEWinMain            (SHDOCVW.101)
+ *
+ * Only returns on error.
+ */
+DWORD WINAPI IEWinMain(LPSTR szCommandLine, int nShowWindow)
+{
+    LPWSTR url;
+    DWORD len;
+
+    FIXME("%s %d\n", debugstr_a(szCommandLine), nShowWindow);
+
+    CoInitialize(NULL);
+
+    /* FIXME: parse the command line properly, handle -Embedding */
+
+    len = MultiByteToWideChar(CP_ACP, 0, szCommandLine, -1, NULL, 0);
+    url = HeapAlloc(GetProcessHeap(),0,len*sizeof(WCHAR));
+    MultiByteToWideChar(CP_ACP, 0, szCommandLine, -1, url, len);
+
+    create_ie_window(url);
+
+    HeapFree(GetProcessHeap(), 0, url);
+
+     CoUninitialize();
+
+    ExitProcess(0);
+    return 0;
+}
diff --git a/dlls/shdocvw/shdocvw_main.c b/dlls/shdocvw/shdocvw_main.c
index e936095..0093243 100644
--- a/dlls/shdocvw/shdocvw_main.c
+++ b/dlls/shdocvw/shdocvw_main.c
@@ -637,33 +637,3 @@
         return p(dwClass, lpszStr, dwUnknown, dwMode, dwTimeStamp);
     return ERROR_CALL_NOT_IMPLEMENTED;
 }
-
-/******************************************************************
- *		IEWinMain            (SHDOCVW.101)
- *
- * Only returns on error.
- */
-DWORD WINAPI IEWinMain(LPSTR szCommandLine, int nShowWindow)
-{
-    LPWSTR url;
-    DWORD len;
-
-    FIXME("%s %d\n", debugstr_a(szCommandLine), nShowWindow);
-
-    CoInitialize(NULL);
-
-    /* FIXME: parse the command line properly, handle -Embedding */
-
-    len = MultiByteToWideChar(CP_ACP, 0, szCommandLine, -1, NULL, 0);
-    url = HeapAlloc(GetProcessHeap(),0,len*sizeof(WCHAR));
-    MultiByteToWideChar(CP_ACP, 0, szCommandLine, -1, url, len);
-
-    create_ie_window(url);
-
-    HeapFree(GetProcessHeap(), 0, url);
-
-    CoUninitialize();
-
-    ExitProcess(0);
-    return 0;
-}
