diff --git a/autoconf/hercules.m4 b/autoconf/hercules.m4
index cb962f5..31d641c 100755
--- a/autoconf/hercules.m4
+++ b/autoconf/hercules.m4
@@ -263,7 +263,7 @@ AC_DEFUN([_HC_CHECK_NEED_GETOPT_WRAPPER],
 
     else
 
-        if test $(libtool --features | fgrep "enable shared libraries" | wc -l) -ne 1; then
+        if test "$enable_shared" != "yes"; then
 
             #  Libtool doesn't support shared libraries,
             #  and thus our wrapper kludge is not needed.
diff --git a/configure.ac b/configure.ac
index c657251..af23407 100644
--- a/configure.ac
+++ b/configure.ac
@@ -325,41 +325,6 @@ fi
 modexecdir='$(libdir)/$(PACKAGE)'
 AC_SUBST(modexecdir)
 
-
-# -----------------------------------------------------------------------------
-#
-#  AC_LIBTOOL_DLOPEN
-#
-#       Enable checking for dlopen support. This macro should be used if the
-#       package makes use of the '-dlopen' and '-dlpreopen' flags, otherwise
-#       libtool will assume that the system does not support dlopening. The
-#       macro must be called before AC_PROG_LIBTOOL.
-#
-# -----------------------------------------------------------------------------
-
-AC_LIBTOOL_DLOPEN()                     # (we need libtool's dlopen support)
-
-
-# -----------------------------------------------------------------------------
-#
-#  AC_LIBTOOL_WIN32_DLL
-#
-#       This macro should be used if the package has been ported to build
-#       clean dlls on win32 platforms. Usually this means that any library
-#       data items are exported with __declspec(dllexport) and imported with
-#       __declspec(dllimport). If this macro is not used, libtool will assume
-#       that the package libraries are not dll clean and will build only static
-#       libraries on win32 hosts.
-#
-#       This macro must be called before AC_PROG_LIBTOOL, and provision must
-#       be made to pass '-no-undefined' to libtool in link mode from the package
-#       Makefile. Naturally, if you pass '-no-undefined', you must ensure that
-#       all the library symbols really are defined at link time!
-#
-# -----------------------------------------------------------------------------
-
-AC_LIBTOOL_WIN32_DLL()                  # (we need Win32 support in libtool)
-
 # -----------------------------------------------------------------------------
 #  This is a hack:
 #
@@ -395,117 +360,8 @@ case $host_os in
       ;;
 esac
 
-# -----------------------------------------------------------------------------
-#  See: 'AC_PROG_LIBTOOL' below.
-# -----------------------------------------------------------------------------
-
-AC_DISABLE_STATIC()                     # (forces libtool to build shared
-                                        #  libraries instead of static ones)
-
-# -----------------------------------------------------------------------------
-#  AC_PROG_LIBTOOL
-#
-#       Add support for the '--enable-shared' and '--disable-shared'
-#       configure flags. By default, this macro turns on shared libraries
-#       if they are available, and also enables static libraries if they
-#       don't conflict with the shared libraries. You can modify these
-#       defaults by calling either the AC_DISABLE_SHARED or AC_DISABLE_STATIC
-#       macros.
-#
-#       Hercules REQUIRES shared libraries (i.e. DLLs), so we do indeed use
-#       the AC_DISABLE_STATIC macro above.
-#
-# -----------------------------------------------------------------------------
-
-AC_PROG_LIBTOOL()                       # (we build libtool for ourselves)
-
-
-# -----------------------------------------------------------------------------
-#
-#  AC_LIB_LTDL
-#
-#       Even though libltdl is installed together with libtool, you may wish
-#       to include libltdl in the distribution of your package, for the convenience
-#       of users of your package that don't have libtool or libltdl installed.
-#
-#       The most simplistic way to add libltdl to your package is to copy the
-#       source files, 'ltdl.c' and 'ltdl.h', to a source directory withing your
-#       package and to build and link them along with the rest of your sources.
-#
-#       To do this, you must add a call to the 'AC_LIB_LTDL' macro to your package's
-#       'configure.in' to perform the required configure time checks in order that
-#       'ltdl.o' is built correctly.
-#
-#       This method does have its problems though: if you try to link the package
-#       binaries with an installed libltdl, or a library which depends on libltdl,
-#       you may have problems with duplicate symbol definitions.
-#
-#       In order to enable this flavor of libltdl, you should add the line
-#       'AC_LIBLTDL_CONVENIENCE' to your `configure.in', before 'AC_PROG_LIBTOOL'.
-#
-#       In order to select the installable version of libltdl, you should add a
-#       call of the macro 'AC_LIBLTDL_INSTALLABLE' to your 'configure.in' before
-#       'AC_PROG_LIBTOOL'. This macro will check whether libltdl is already
-#       installed and, if not, request the libltdl embedded in your package to be
-#       built and installed.
-#
-#       Whatever macro you use, it is up to you to ensure that your 'configure.in'
-#       will configure libltdl, using 'AC_CONFIG_SUBDIRS', and that your 'Makefile's
-#       will start sub-makes within libltdl's directory, using automake's SUBDIRS,
-#       for example. Both macros define the shell variables LIBLTDL, to the link flag
-#       that you should use to link with libltdl, and LTDLINCL, to the preprocessor
-#       flag that you should use to compile with programs that include 'ltdl.h'. It
-#       is up to you to use 'AC_SUBST' to ensure that this variable will be available
-#       in 'Makefile's, or add them to variables that are 'AC_SUBST'ed by default,
-#       such as LIBS and CPPFLAGS.
-#
-#       So, when you want to link a program with libltdl, be it a convenience,
-#       installed or installable library, just compile with '$(LTDLINCL)' and link
-#       it with '$(LIBLTDL)', using libtool.
-#
-#       You should probably also add 'AC_LIBTOOL_DLOPEN' to your 'configure.in' before
-#       'AC_PROG_LIBTOOL', otherwise libtool will assume no dlopening mechanism is
-#       supported, and revert to dlpreopening, which is probably not what you want.
-#
-#       The following example shows you how to embed the convenience libltdl
-#       in your package. In order to use the installable variant just replace
-#       'AC_LIBLTDL_CONVENIENCE' with 'AC_LIBLTDL_INSTALLABLE'. We assume that libltdl
-#       was embedded using 'libtoolize --ltdl':
-#
-#           configure.in:
-#
-#               ...
-#               dnl Enable building of the convenience library
-#               dnl and set LIBLTDL accordingly
-#               AC_LIBLTDL_CONVENIENCE
-#               dnl Substitute LTDLINCL and LIBLTDL in the Makefiles
-#               AC_SUBST(LTDLINCL)
-#               AC_SUBST(LIBLTDL)
-#               dnl Check for dlopen support
-#               AC_LIBTOOL_DLOPEN
-#               dnl Configure libtool
-#               AC_PROG_LIBTOOL
-#               dnl Configure libltdl
-#               AC_CONFIG_SUBDIRS(libltdl)
-#               ...
-#
-#           Makefile.am:
-#
-#               ...
-#               SUBDIRS = libltdl
-#
-#               INCLUDES = $(LTDLINCL)
-#
-#               myprog_LDFLAGS = -export-dynamic
-#               # The quotes around -dlopen below fool automake <= 1.4 into accepting it
-#               myprog_LDADD = $(LIBLTDL) "-dlopen" self "-dlopen" foo1.la
-#               myprog_DEPENDENCIES = $(LIBLTDL) foo1.la
-#               ...
-#
-# -----------------------------------------------------------------------------
-
-AC_LIB_LTDL()                           # (we need the ltdl libtool library)
-AC_SUBST([LIBTOOL_DEPS])                # (see PROGRAMMING NOTE above)
+LT_PREREQ([2.2.6])
+LT_INIT([dlopen win32-dll disable-static])
 
 # -----------------------------------------------------------------------------
 # (See comments in the 'AC_CHECK_LIB' Libraries section further below)
