diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 7772a0637c1..9052b644ea8 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2002-07-31  Jakub Jelinek  <jakub@redhat.com>
+
+	* elf32-i386.c (elf_i386_copy_indirect_symbol): Swap tls_type
+	if _bfd_elf_link_hash_copy_indirect will swap got.refcount.
+
 2002-07-31  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
 
 	* aoutx.h (aout_link_check_ar_symbols): Whether to include an
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
index 7f26fabb368..997bf372270 100644
--- a/bfd/elf32-i386.c
+++ b/bfd/elf32-i386.c
@@ -809,6 +809,12 @@ elf_i386_copy_indirect_symbol (dir, ind)
       eind->dyn_relocs = NULL;
     }
 
+  if (ind->root.type == bfd_link_hash_indirect
+      && dir->got.refcount <= 0)
+    {
+      edir->tls_type = eind->tls_type;
+      eind->tls_type = GOT_UNKNOWN;
+    }
   _bfd_elf_link_hash_copy_indirect (dir, ind);
 }