diff --git a/gold/ChangeLog b/gold/ChangeLog
index 10fc03b3ec1..d7dd903f67c 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,9 @@
+2015-02-04  Peter Collingbourne  <pcc@google.com>
+            Cary Coutant  <ccoutant@google.com>
+
+	* output.cc (Output_section::add_merge_input_section): Do not
+	attempt to merge sections with an entsize of 0.
+
 2015-02-02  Khem Raj  <raj.khem@gmail.com>
 
 	* attributes.h (class Output_attributes_section_data ): Add
diff --git a/gold/output.cc b/gold/output.cc
index e9dd522bdf7..01838cc86e0 100644
--- a/gold/output.cc
+++ b/gold/output.cc
@@ -2636,6 +2636,10 @@ Output_section::add_merge_input_section(Relobj* object, unsigned int shndx,
 					uint64_t addralign,
 					bool keeps_input_sections)
 {
+  // We cannot merge sections with entsize == 0.
+  if (entsize == 0)
+    return false;
+
   bool is_string = (flags & elfcpp::SHF_STRINGS) != 0;
 
   // We cannot restore merged input section states.