diff --git a/src/modules/Java/ntdl.c b/src/modules/Java/ntdl.c
index f7ce1d8b5a809529cf3e3a3820ccf76bfbb45f0b..b1b7931ca744f7a896ea47b71209c0f3f35472b3 100644
--- a/src/modules/Java/ntdl.c
+++ b/src/modules/Java/ntdl.c
@@ -23,7 +23,7 @@ static HINSTANCE jvmdll = NULL;
 
 static int open_nt_dll(void)
 {
-  LPCTSTR libname=_T("jvm");
+  LPTSTR libname=_T("jvm");
   LPCTSTR keyname=_T("SOFTWARE\\JavaSoft\\Java Runtime Environment");
   HKEY key;
   TCHAR buffer[2*MAX_PATH+32];
@@ -88,14 +88,14 @@ static int open_nt_dll(void)
    * SetDllDirectory() with it.
    */
   kernel = GetModuleHandle("kernel32");
-  getdlldir = (void *)GetModuleHandle(kernel, "GetDllDirectoryA");
-  setdlldir = (void *)GetModuleHandle(kernel, "SetDllDirectoryA");
+  getdlldir = (void *)GetProcAddress(kernel, "GetDllDirectoryA");
+  setdlldir = (void *)GetProcAddress(kernel, "SetDllDirectoryA");
 
   if (setdlldir) {
     int cnt = 0;
 
     for(l = len; l--;) {
-      if (jvmdll[l] == '\\') {
+      if (libname[l] == '\\') {
 	/* Go up two directory levels. */
 	if (++cnt == 2) break;
       }