diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 9bb3cee970e..80c13e81e94 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+1999-06-30  Ian Lance Taylor  <ian@zembu.com>
+
+	* elf32-mips.c (mips_elf_final_link): Don't set CPIC when doing a
+	relocateable link.  From Ralf Baechle <ralf@uni-koblenz.de>.
+
 1999-06-04  Philip Blundell  <philb@gnu.org>
 
 	* elf32-arm.h (elf_backend_got_header_size): Define.
diff --git a/bfd/elf32-mips.c b/bfd/elf32-mips.c
index c152e8af5fd..fa69ab5f953 100644
--- a/bfd/elf32-mips.c
+++ b/bfd/elf32-mips.c
@@ -4175,11 +4175,12 @@ mips_elf_final_link (abfd, info)
   /* If all the things we linked together were PIC, but we're
      producing an executable (rather than a shared object), then the
      resulting file is CPIC (i.e., it calls PIC code.)  */
-  if (!info->shared && elf_elfheader (abfd)->e_flags & EF_MIPS_PIC)
+  if (!info->shared
+      && !info->relocateable
+      && elf_elfheader (abfd)->e_flags & EF_MIPS_PIC)
     {
       elf_elfheader (abfd)->e_flags &= ~EF_MIPS_PIC;
       elf_elfheader (abfd)->e_flags |= EF_MIPS_CPIC;
-      
     }
 
   /* On IRIX5, we omit the .options section.  On IRIX6, however, we