diff --git a/src/if_lua.c b/src/if_lua.c
index 8c1638a..1984291 100644
--- a/src/if_lua.c
+++ b/src/if_lua.c
@@ -398,16 +398,6 @@
 
 static HANDLE hinstLua = NULL;
 
-    static void
-end_dynamic_lua(void)
-{
-    if (hinstLua)
-    {
-	close_dll(hinstLua);
-	hinstLua = 0;
-    }
-}
-
     static int
 lua_link_init(char *libname, int verbose)
 {
@@ -2121,9 +2111,6 @@
     {
 	lua_close(L);
 	L = NULL;
-#ifdef DYNAMIC_LUA
-	end_dynamic_lua();
-#endif
     }
 }
 
diff --git a/src/if_perl.xs b/src/if_perl.xs
index 12e1a22..3af309a 100644
--- a/src/if_perl.xs
+++ b/src/if_perl.xs
@@ -762,7 +762,7 @@
 }
 
 /*
- * perl_end(): clean up after ourselves
+ * Clean up after ourselves.
  */
     void
 perl_end(void)
@@ -777,13 +777,6 @@
 	Perl_sys_term();
 #endif
     }
-#ifdef DYNAMIC_PERL
-    if (hPerlLib)
-    {
-	close_dll(hPerlLib);
-	hPerlLib = NULL;
-    }
-#endif
 }
 
 /*
diff --git a/src/if_python.c b/src/if_python.c
index 7b22070..394ed3e 100644
--- a/src/if_python.c
+++ b/src/if_python.c
@@ -655,19 +655,6 @@
 };
 
 /*
- * Free python.dll
- */
-    static void
-end_dynamic_python(void)
-{
-    if (hinstPython)
-    {
-	close_dll(hinstPython);
-	hinstPython = 0;
-    }
-}
-
-/*
  * Load library and get all pointers.
  * Parameter 'libname' provides name of DLL.
  * Return OK or FAIL.
@@ -889,7 +876,6 @@
 # endif
 	Py_Finalize();
     }
-    end_dynamic_python();
 #else
     if (Py_IsInitialized())
     {
diff --git a/src/if_python3.c b/src/if_python3.c
index 2985e9c..ecca163 100644
--- a/src/if_python3.c
+++ b/src/if_python3.c
@@ -635,19 +635,6 @@
 # endif
 
 /*
- * Free python.dll
- */
-    static void
-end_dynamic_python3(void)
-{
-    if (hinstPy3 != 0)
-    {
-	close_dll(hinstPy3);
-	hinstPy3 = 0;
-    }
-}
-
-/*
  * Load library and get all pointers.
  * Parameter 'libname' provides name of DLL.
  * Return OK or FAIL.
@@ -873,10 +860,6 @@
 	Py_Finalize();
     }
 
-#ifdef DYNAMIC_PYTHON3
-    end_dynamic_python3();
-#endif
-
     --recurse;
 }
 
diff --git a/src/if_ruby.c b/src/if_ruby.c
index a4a59f6..80481e7 100644
--- a/src/if_ruby.c
+++ b/src/if_ruby.c
@@ -736,19 +736,6 @@
 };
 
 /*
- * Free ruby.dll
- */
-    static void
-end_dynamic_ruby(void)
-{
-    if (hinstRuby)
-    {
-	close_dll(hinstRuby);
-	hinstRuby = NULL;
-    }
-}
-
-/*
  * Load library and get all pointers.
  * Parameter 'libname' provides name of DLL.
  * Return OK or FAIL.
@@ -797,9 +784,6 @@
     void
 ruby_end(void)
 {
-#ifdef DYNAMIC_RUBY
-    end_dynamic_ruby();
-#endif
 }
 
     void
diff --git a/src/if_tcl.c b/src/if_tcl.c
index c4f85fa..45d880b 100644
--- a/src/if_tcl.c
+++ b/src/if_tcl.c
@@ -280,13 +280,6 @@
     void
 tcl_end(void)
 {
-#ifdef DYNAMIC_TCL
-    if (hTclLib)
-    {
-	close_dll(hTclLib);
-	hTclLib = NULL;
-    }
-#endif
 }
 
 /////////////////////////////////////////////////////////////////////////////
diff --git a/src/version.c b/src/version.c
index 402ed40..f1d74d8 100644
--- a/src/version.c
+++ b/src/version.c
@@ -739,6 +739,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    479,
+/**/
     478,
 /**/
     477,
