diff -dru src.orig/src/aclocal.m4 src/src/aclocal.m4
--- src.orig/src/aclocal.m4	2012-12-17 11:08:05.000000000 +0100
+++ src/src/aclocal.m4	2012-12-18 17:49:57.286761551 +0100
@@ -232,6 +232,8 @@
 AC_SUBST(LIBEXT)
 AC_SUBST(SHAREDEXT)dnl	Name components of a dynamically linked library
 AC_SUBST(SHAREDPREFIX)
+AC_SUBST(IMPLIB_EXT)dnl	Name components of a dynamically linked library import file
+AC_SUBST(IMPLIB_PREFIX)
 AC_SUBST(OBJEXT)dnl	These are set by autoconf
 AC_SUBST(EXEEXT)
 AC_SUBST(INSTALL_TARGET)dnl Which type of installation: flat directory or unix like.
@@ -241,6 +243,8 @@
 ECL_LDRPATH=''
 SHAREDEXT='so'
 SHAREDPREFIX='lib'
+IMPLIB_EXT=''
+IMPLIB_PREFIX=''
 LIBPREFIX='lib'
 LIBEXT='a'
 PICFLAG='-fPIC'
@@ -252,6 +256,8 @@
 clibs=''
 SONAME=''
 SONAME_LDFLAGS=''
+IMPLIB_NAME=''
+IMPLIB_LDFLAGS=''
 case "${host_os}" in
 	# libdir may have a dollar expression inside
 	linux*)
@@ -354,10 +360,14 @@
 		shared='yes'
 		THREAD_CFLAGS='-D_THREAD_SAFE'
 		THREAD_LIBS='-lpthread'
-		SHARED_LDFLAGS="-shared ${LDFLAGS}"
-		BUNDLE_LDFLAGS="-shared ${LDFLAGS}"
-		SHAREDPREFIX=''
+		SHARED_LDFLAGS="-shared -Wl,--enable-auto-image-base ${LDFLAGS}"
+		BUNDLE_LDFLAGS="-shared -Wl,--enable-auto-image-base ${LDFLAGS}"
+		SHAREDPREFIX='cyg'
 		SHAREDEXT='dll'
+		IMPLIB_PREFIX='lib'
+		IMPLIB_EXT='dll.a'
+		IMPLIB_NAME="${IMPLIB_PREFIX}ecl.${IMPLIB_EXT}"
+		IMPLIB_LDFLAGS="-Wl,--out-implib,${IMPLIB_NAME}"
 		PICFLAG=''
 		;;
 	mingw*)
@@ -367,10 +377,14 @@
                 enable_threads='yes'
 		THREAD_CFLAGS='-D_THREAD_SAFE'
 		THREAD_GC_FLAGS='--enable-threads=win32'
-		SHARED_LDFLAGS=''
-		BUNDLE_LDFLAGS=''
+		SHARED_LDFLAGS="-shared -Wl,--enable-auto-image-base ${LDFLAGS}"
+		BUNDLE_LDFLAGS="-shared -Wl,--enable-auto-image-base ${LDFLAGS}"
 		SHAREDPREFIX=''
 		SHAREDEXT='dll'
+		IMPLIB_PREFIX='lib'
+		IMPLIB_EXT='dll.a'
+		IMPLIB_NAME="${IMPLIB_PREFIX}ecl.${IMPLIB_EXT}"
+		IMPLIB_LDFLAGS="-Wl,--out-implib,${IMPLIB_NAME}"
 		PICFLAG=''
 		INSTALL_TARGET='flatinstall'
 		TCPLIBS='-lws2_32'
diff -dru src.orig/src/compile.lsp.in src/src/compile.lsp.in
--- src.orig/src/compile.lsp.in	2012-12-17 11:08:05.000000000 +0100
+++ src/src/compile.lsp.in	2012-12-18 17:49:48.834761744 +0100
@@ -42,7 +42,7 @@
 ;;;
 ;;; * Add include path to not yet installed headers, and remove include flag
 ;;;   (-I) to installed directory, and Notice that we must explicitely mention
-;;;   libecl.so/ecl.dll instead of using -lecl. This is to avoid interference
+;;;   libecl.so/cygecl.dll instead of using -lecl. This is to avoid interference
 ;;;   with an already installed copy of ECL.
 ;;;
 (setq c::*cc-flags*
@@ -50,7 +50,7 @@
       #+msvc "@CFLAGS@ @ECL_CFLAGS@"
       c::*ecl-include-directory* "@true_builddir@/"
       c::*ecl-library-directory* "@true_builddir@/")
-#-:wants-dlopen 
+#-:wants-dlopen
 (setf c::*ld-flags*
       "@LDFLAGS@ @LIBPREFIX@ecl.@LIBEXT@ @CORE_LIBS@ @LIBS@ @FASL_LIBS@")
 #+(and :wants-dlopen (not nonstop))
@@ -124,7 +124,7 @@
 ;;;
 ;;; We do not need the -rpath flag for the library, nor -lecl.
 ;;;
-(let* ((c::*ld-shared-flags* #-msvc "@SHARED_LDFLAGS@ @LDFLAGS@ @SONAME_LDFLAGS@ @CORE_LIBS@ @LIBS@ @FASL_LIBS@"
+(let* ((c::*ld-shared-flags* #-msvc " @IMPLIB_LDFLAGS@ @SHARED_LDFLAGS@ @LDFLAGS@ @SONAME_LDFLAGS@ @CORE_LIBS@ @LIBS@ @FASL_LIBS@"
 			     #+msvc "@SHARED_LDFLAGS@ @LDFLAGS@ @STATICLIBS@ @CLIBS@")
        (c::*cc-flags* (concatenate 'string "-DECL_API -I@true_builddir@/c " c::*cc-flags*))
        (extra-args nil))
diff -dru src.orig/src/configure.in src/src/configure.in
--- src.orig/src/configure.in	2012-12-17 11:08:10.000000000 +0100
+++ src/src/configure.in	2012-12-18 17:46:26.306769423 +0100
@@ -576,6 +576,19 @@
 AC_SUBST(SONAME)
 AC_SUBST(SONAME_LDFLAGS)
 
+dnl ----------------------------------------------------------------------
+dnl IMPLIB_NAME is only active when IMPLIB_NAME is non nil
+dnl
+AC_MSG_CHECKING(for import name)
+if test "${enable_soname}" != yes; then
+   IMPLIB_NAME=''
+   AC_MSG_RESULT([none])
+else
+   AC_MSG_RESULT([${IMPLIB_NAME}])
+fi
+AC_SUBST(IMPLIB_NAME)
+AC_SUBST(IMPLIB_LDFLAGS)
+
 dnl Related to that, the package version number
 ECL_VERSION_NUMBER=$(($PACKAGE_MAJOR * 10000 + $PACKAGE_MINOR * 100 + $PACKAGE_LEAST))
 AC_SUBST(ECL_VERSION_NUMBER)
diff -dru src.orig/src/Makefile.in src/src/Makefile.in
--- src.orig/src/Makefile.in	2012-12-17 11:08:06.000000000 +0100
+++ src/src/Makefile.in	2012-12-18 17:47:22.334767924 +0100
@@ -174,10 +174,14 @@
 	  if test -s $$i ; then \
 	   if echo $$i | grep dll; then \
 	    $(INSTALL_LIBRARY) $$i $(DESTDIR)$(bindir); \
-	   fi; \
-	   $(INSTALL_LIBRARY) $$i $(DESTDIR)$(libdir); \
+	   else \
+	    $(INSTALL_LIBRARY) $$i $(DESTDIR)$(libdir); \
+	   fi \
 	  fi \
 	done
+	if [ "x@IMPLIB_NAME@" != "x" -a -f "@IMPLIB_NAME@" ]; then \
+	  $(INSTALL_LIBRARY) @IMPLIB_NAME@ $(DESTDIR)$(libdir); \
+	fi
 	if [ "x@SONAME@" != "x" -a -f "@SONAME@" ]; then \
 	  ( cd $(DESTDIR)$(libdir) && $(RM) -f @SONAME3@ @SONAME2@ @SONAME1@ && \
 	    mv @SONAME@ @SONAME3@ && \
