diff --git a/loader/ne/segment.c b/loader/ne/segment.c
index dbc004a7a0eb68bd49c44cec31a9c49c003bb016..c51fa25cb39cd974136ad55cb8a1ad444de33748 100644
--- a/loader/ne/segment.c
+++ b/loader/ne/segment.c
@@ -648,6 +648,7 @@ void NE_InitializeDLLs( HMODULE16 hModule )
  *
  * Call the DllEntryPoint of DLLs with subsystem >= 4.0 
  */
+typedef DWORD WINAPI (*WinNEEntryProc)(DWORD,WORD,WORD,WORD,DWORD,WORD);
 
 static void NE_CallDllEntryPoint( NE_MODULE *pModule, DWORD dwReason )
 {
@@ -668,9 +669,8 @@ static void NE_CallDllEntryPoint( NE_MODULE *pModule, DWORD dwReason )
 
     if ( pModule->flags & NE_FFLAGS_BUILTIN )
     {
-        DWORD WINAPI (*entryProc)(DWORD,WORD,WORD,WORD,DWORD,WORD) =
-              (DWORD WINAPI (*)(DWORD,WORD,WORD,WORD,DWORD,WORD))
-              ((ENTRYPOINT16 *)PTR_SEG_TO_LIN( entryPoint ))->target;
+        WinNEEntryProc entryProc = (WinNEEntryProc)
+			  ((ENTRYPOINT16 *)PTR_SEG_TO_LIN( entryPoint ))->target;
 
         entryProc( dwReason, hInst, ds, heap, 0, 0 );
     }