diff --git a/loader/module.c b/loader/module.c
index d2c0fb8..af249b6 100644
--- a/loader/module.c
+++ b/loader/module.c
@@ -1633,9 +1633,6 @@
  */
 FARPROC16 WINAPI WIN32_GetProcAddress16( HMODULE hModule, LPCSTR name )
 {
-    WORD	ordinal;
-    FARPROC16	ret;
-
     if (!hModule) {
     	WARN("hModule may not be 0!\n");
 	return (FARPROC16)0;
@@ -1645,24 +1642,13 @@
     	WARN("hModule is Win32 handle (%08x)\n", hModule );
 	return (FARPROC16)0;
     }
-    hModule = GetExePtr( hModule );
-    if (HIWORD(name)) {
-        ordinal = NE_GetOrdinal( hModule, name );
-        TRACE("%04x '%s'\n", hModule, name );
-    } else {
-        ordinal = LOWORD(name);
-        TRACE("%04x %04x\n", hModule, ordinal );
-    }
-    if (!ordinal) return (FARPROC16)0;
-    ret = NE_GetEntryPoint( hModule, ordinal );
-    TRACE("returning %08x\n",(UINT)ret);
-    return ret;
+    return GetProcAddress16( hModule, name );
 }
 
 /***********************************************************************
  *           GetProcAddress16   (KERNEL.50)
  */
-FARPROC16 WINAPI GetProcAddress16( HMODULE16 hModule, SEGPTR name )
+FARPROC16 WINAPI GetProcAddress16( HMODULE16 hModule, LPCSTR name )
 {
     WORD ordinal;
     FARPROC16 ret;
@@ -1672,8 +1658,8 @@
 
     if (HIWORD(name) != 0)
     {
-        ordinal = NE_GetOrdinal( hModule, (LPSTR)PTR_SEG_TO_LIN(name) );
-        TRACE("%04x '%s'\n", hModule, (LPSTR)PTR_SEG_TO_LIN(name) );
+        ordinal = NE_GetOrdinal( hModule, name );
+        TRACE("%04x '%s'\n", hModule, name );
     }
     else
     {
diff --git a/loader/resource.c b/loader/resource.c
index cec6f6c..20fb275 100644
--- a/loader/resource.c
+++ b/loader/resource.c
@@ -320,12 +320,9 @@
 /**********************************************************************
  *          FindResource16   (KERNEL.60)
  */
-HRSRC16 WINAPI FindResource16( HMODULE16 hModule, SEGPTR name, SEGPTR type )
+HRSRC16 WINAPI FindResource16( HMODULE16 hModule, LPCSTR name, LPCSTR type )
 {
-    LPCSTR nameStr = HIWORD(name)? PTR_SEG_TO_LIN(name) : (LPCSTR)name;
-    LPCSTR typeStr = HIWORD(type)? PTR_SEG_TO_LIN(type) : (LPCSTR)type;
-
-    return RES_FindResource( hModule, typeStr, nameStr, 
+    return RES_FindResource( hModule, type, name,
                     MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), FALSE, TRUE );
 }
 
