diff -purN ../guile-1.5.6.orig/libltdl/ltdl.h ./libltdl/ltdl.h
--- ../guile-1.5.6.orig/libltdl/ltdl.h	Sat Sep 22 02:20:14 2001
+++ ./libltdl/ltdl.h	Wed Oct  3 08:54:34 2001
@@ -123,6 +123,18 @@
 #  define LT_PATHSEP_CHAR	':'
 #endif
 
+#ifdef __CYGWIN__
+/* CYGWIN auto-import fix for multiword data exports */
+/* Note: auto-export is assumed (no __declspec(dllexport)) */
+#ifndef IM_LTDL_IMPORT
+#if (defined(_WIN32) || defined(__CYGWIN__)) && !(defined(IM_LTDL_BUILD_DLL) || defined(IM_LTDL_STATIC))
+#define IM_LTDL_IMPORT __declspec(dllimport)
+#else
+#define IM_LTDL_IMPORT
+#endif
+#endif
+#else /* !__CYGWIN__ */
+
 /* DLL building support on win32 hosts;  mostly to workaround their
    ridiculous implementation of data symbol exporting. */
 #ifndef LT_SCOPE
@@ -139,6 +151,7 @@
 #  endif
 #endif
 
+#endif /* __CYWGIN__ */
 
 
 
@@ -223,7 +236,7 @@
 				LT_PARAMS((const lt_dlsymlist *preloaded));
 
 #define LTDL_SET_PRELOADED_SYMBOLS() 		LT_STMT_START{	\
-	extern const lt_dlsymlist lt_preloaded_symbols[];		\
+	extern IM_LTDL_IMPORT const lt_dlsymlist lt_preloaded_symbols[];		\
 	lt_dlpreload_default(lt_preloaded_symbols);			\
 						}LT_STMT_END
 

