diff --git a/gas/ChangeLog b/gas/ChangeLog
index 075e8c4b764..c41533d51f9 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -5,6 +5,9 @@
 
 1999-09-11  Donn Terry  <donn@interix.com>
 
+	* config/tc-i386.c (tc_i386_fix_adjustable): Don't adjust
+	relocations against global symbols if TE_PE.
+
 	* config/obj-coff.c (obj_coff_ident): Add BFD_ASSEMBLER version.
 	(obj_pseudo_table): Always handle ".ident" with obj-coff_ident.
 
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 0148f72fb4d..7b1ac084365 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -941,8 +941,9 @@ int
 tc_i386_fix_adjustable(fixP)
      fixS * fixP;
 {
-#ifdef OBJ_ELF
-  /* Prevent all adjustments to global symbols. */
+#if defined (OBJ_ELF) || defined (TE_PE)
+  /* Prevent all adjustments to global symbols, or else dynamic
+     linking will not work correctly.  */
   if (S_IS_EXTERN (fixP->fx_addsy))
     return 0;
   if (S_IS_WEAK (fixP->fx_addsy))