diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 6237081ee15..d97d5546ede 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2009-10-10  Alan Modra  <amodra@bigpond.net.au>
+
+	* cofflink.c (_bfd_coff_link_input_bfd): Skip section symbols for
+	excluded output sections.
+
 2009-10-09  Tristan Gingold  <gingold@adacore.com>
 
 	* mach-o.c (bfd_mach_o_read_command): Handle BFD_MACH_O_LC_RPATH.
diff --git a/bfd/cofflink.c b/bfd/cofflink.c
index 3253e5eecd7..a29b6879504 100644
--- a/bfd/cofflink.c
+++ b/bfd/cofflink.c
@@ -1514,11 +1514,13 @@ _bfd_coff_link_input_bfd (struct coff_final_link_info *finfo, bfd *input_bfd)
       /* Skip section symbols for sections which are not going to be
 	 emitted.  */
       if (!skip
-	  && dont_skip_symbol == 0
+	  && !dont_skip_symbol
 	  && isym.n_sclass == C_STAT
 	  && isym.n_type == T_NULL
-          && isym.n_numaux > 0
-	  && (*secpp)->output_section == bfd_abs_section_ptr)
+	  && isym.n_numaux > 0
+	  && ((*secpp)->output_section == bfd_abs_section_ptr
+	      || bfd_section_removed_from_list (output_bfd,
+						(*secpp)->output_section)))
 	skip = TRUE;
 #endif