diff --git a/src/Makefile b/src/Makefile
index f6b760f..5cf116d 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -2801,7 +2801,7 @@
 	$(CCC) -o $@ ops.c
 
 objects/option.o: option.c
-	$(CCC) -o $@ option.c
+	$(CCC) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) $(PYTHON3_CFLAGS) $(RUBY_CFLAGS) -o $@ option.c
 
 objects/os_beos.o: os_beos.c
 	$(CCC) -o $@ os_beos.c
diff --git a/src/if_lua.c b/src/if_lua.c
index e94c96d..46f881a 100644
--- a/src/if_lua.c
+++ b/src/if_lua.c
@@ -402,12 +402,7 @@
     int
 lua_enabled(int verbose)
 {
-#ifdef WIN3264
-    char *dll = DYNAMIC_LUA_DLL;
-#else
-    char *dll = *p_luadll ? (char *)p_luadll : DYNAMIC_LUA_DLL;
-#endif
-    return lua_link_init(dll, verbose) == OK;
+    return lua_link_init((char *)p_luadll, verbose) == OK;
 }
 
 #endif /* DYNAMIC_LUA */
diff --git a/src/if_perl.xs b/src/if_perl.xs
index b429b47..098b62e 100644
--- a/src/if_perl.xs
+++ b/src/if_perl.xs
@@ -611,12 +611,7 @@
 perl_enabled(verbose)
     int		verbose;
 {
-#ifdef WIN3264
-    char *dll = DYNAMIC_PERL_DLL;
-#else
-    char *dll = *p_perldll ? (char *)p_perldll : DYNAMIC_PERL_DLL;
-#endif
-    return perl_runtime_link_init(dll, verbose) == OK;
+    return perl_runtime_link_init((char *)p_perldll, verbose) == OK;
 }
 #endif /* DYNAMIC_PERL */
 
diff --git a/src/if_python.c b/src/if_python.c
index 94b299e..4f028e5 100644
--- a/src/if_python.c
+++ b/src/if_python.c
@@ -732,12 +732,7 @@
     int
 python_enabled(int verbose)
 {
-#ifdef WIN3264
-    char *dll = DYNAMIC_PYTHON_DLL;
-#else
-    char *dll = *p_pydll ? (char *)p_pydll : DYNAMIC_PYTHON_DLL;
-#endif
-    return python_runtime_link_init(dll, verbose) == OK;
+    return python_runtime_link_init((char *)p_pydll, verbose) == OK;
 }
 
 /*
diff --git a/src/if_python3.c b/src/if_python3.c
index 387b811..a78fa6b 100644
--- a/src/if_python3.c
+++ b/src/if_python3.c
@@ -686,12 +686,7 @@
     int
 python3_enabled(int verbose)
 {
-#ifdef WIN3264
-    char *dll = DYNAMIC_PYTHON3_DLL;
-#else
-    char *dll = *p_py3dll ? (char *)p_py3dll : DYNAMIC_PYTHON3_DLL;
-#endif
-    return py3_runtime_link_init(dll, verbose) == OK;
+    return py3_runtime_link_init((char *)p_py3dll, verbose) == OK;
 }
 
 /* Load the standard Python exceptions - don't import the symbols from the
diff --git a/src/if_ruby.c b/src/if_ruby.c
index fa03359..8b1590e 100644
--- a/src/if_ruby.c
+++ b/src/if_ruby.c
@@ -677,12 +677,7 @@
 ruby_enabled(verbose)
     int		verbose;
 {
-#ifdef WIN3264
-    char *dll = DYNAMIC_RUBY_DLL;
-#else
-    char *dll = *p_rubydll ? (char *)p_rubydll : DYNAMIC_RUBY_DLL;
-#endif
-    return ruby_runtime_link_init(dll, verbose) == OK;
+    return ruby_runtime_link_init((char *)p_rubydll, verbose) == OK;
 }
 #endif /* defined(DYNAMIC_RUBY) || defined(PROTO) */
 
diff --git a/src/option.c b/src/option.c
index 3573211..9e7f303 100644
--- a/src/option.c
+++ b/src/option.c
@@ -1776,10 +1776,11 @@
     {"loadplugins", "lpl",  P_BOOL|P_VI_DEF,
 			    (char_u *)&p_lpl, PV_NONE,
 			    {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT},
-#if defined(DYNAMIC_LUA) && !defined(WIN3264)
+#if defined(DYNAMIC_LUA)
     {"luadll",      NULL,   P_STRING|P_VI_DEF|P_SECURE,
 			    (char_u *)&p_luadll, PV_NONE,
-			    {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
+			    {(char_u *)DYNAMIC_LUA_DLL, (char_u *)0L}
+			    SCRIPTID_INIT},
 #endif
 #ifdef FEAT_GUI_MAC
     {"macatsui",    NULL,   P_BOOL|P_VI_DEF|P_RCLR,
@@ -2016,10 +2017,11 @@
 # endif
 #endif
 				(char_u *)0L} SCRIPTID_INIT},
-#if defined(DYNAMIC_PERL) && !defined(WIN3264)
+#if defined(DYNAMIC_PERL)
     {"perldll",     NULL,   P_STRING|P_VI_DEF|P_SECURE,
 			    (char_u *)&p_perldll, PV_NONE,
-			    {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
+			    {(char_u *)DYNAMIC_PERL_DLL, (char_u *)0L}
+			    SCRIPTID_INIT},
 #endif
     {"preserveindent", "pi", P_BOOL|P_VI_DEF|P_VIM,
 			    (char_u *)&p_pi, PV_PI,
@@ -2126,15 +2128,17 @@
 			    (char_u *)NULL, PV_NONE,
 #endif
 			    {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
-#if defined(DYNAMIC_PYTHON3) && !defined(WIN3264)
+#if defined(DYNAMIC_PYTHON3)
     {"pythonthreedll",  NULL,   P_STRING|P_VI_DEF|P_SECURE,
 			    (char_u *)&p_py3dll, PV_NONE,
-			    {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
+			    {(char_u *)DYNAMIC_PYTHON3_DLL, (char_u *)0L}
+			    SCRIPTID_INIT},
 #endif
-#if defined(DYNAMIC_PYTHON) && !defined(WIN3264)
+#if defined(DYNAMIC_PYTHON)
     {"pythondll",   NULL,   P_STRING|P_VI_DEF|P_SECURE,
 			    (char_u *)&p_pydll, PV_NONE,
-			    {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
+			    {(char_u *)DYNAMIC_PYTHON_DLL, (char_u *)0L}
+			    SCRIPTID_INIT},
 #endif
     {"quoteescape", "qe",   P_STRING|P_ALLOCED|P_VI_DEF,
 #ifdef FEAT_TEXTOBJ
@@ -2209,10 +2213,11 @@
 			    {(char_u *)NULL, (char_u *)0L}
 #endif
 			    SCRIPTID_INIT},
-#if defined(DYNAMIC_RUBY) && !defined(WIN3264)
+#if defined(DYNAMIC_RUBY)
     {"rubydll",     NULL,   P_STRING|P_VI_DEF|P_SECURE,
 			    (char_u *)&p_rubydll, PV_NONE,
-			    {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
+			    {(char_u *)DYNAMIC_RUBY_DLL, (char_u *)0L}
+			    SCRIPTID_INIT},
 #endif
     {"ruler",	    "ru",   P_BOOL|P_VI_DEF|P_VIM|P_RSTAT,
 #ifdef FEAT_CMDL_INFO
diff --git a/src/version.c b/src/version.c
index 42f96a6..4d791d0 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1065,
+/**/
     1064,
 /**/
     1063,
