{
  public:
   Output_merge_string()
-    : Output_merge_base(sizeof(Char_type)), stringpool_(false), hashtable_()
-  { }
+    : Output_merge_base(sizeof(Char_type)), stringpool_(), hashtable_()
+  { this->stringpool_.set_no_zero_null(); }
 
   // Add an input section.
   bool
 
 {
 
 template<typename Stringpool_char>
-Stringpool_template<Stringpool_char>::Stringpool_template(bool zero_null)
+Stringpool_template<Stringpool_char>::Stringpool_template()
   : string_set_(), strings_(), strtab_size_(0), next_index_(1),
-    zero_null_(zero_null)
+    zero_null_(true)
 {
 }
 
 
   // is never a valid key value.
   typedef size_t Key;
 
-  // Create a Stringpool.  ZERO_NULL is true if we should reserve
-  // offset 0 to hold the empty string when converting the stringpool
-  // to a string table.  ZERO_NULL should be true if you want a proper
-  // ELF SHT_STRTAB section.
-  Stringpool_template(bool zero_null = true);
+  // Create a Stringpool.
+  Stringpool_template();
 
   ~Stringpool_template();
 
+  // Indicate that we should not reserve offset 0 to hold the empty
+  // string when converting the stringpool to a string table.  This
+  // should not be called for a proper ELF SHT_STRTAB section.
+  void
+  set_no_zero_null()
+  { this->zero_null_ = false; }
+
   // Add the string S to the pool.  This returns a canonical permanent
   // pointer to the string in the pool.  If PKEY is not NULL, this
   // sets *PKEY to the key for the string.