# File lib/loquacious/configuration.rb, line 222
    def merge!( other )
      return self if other.equal? self
      Kernel.raise Error, "can only merge another Configuration" unless other.kind_of?(Configuration)

      other_values = other.__values
      other_defaults = other.__defaults

      other.__desc.each do |key,desc|
        value = @__values[key]
        other_value = other_values[key]

        if value.kind_of?(Configuration) and other_value.kind_of?(Configuration)
          value.merge! other_value
        elsif !other_value.kind_of?(Loquacious::Undefined)
          @__values[key] = other_value
        end

        if other_defaults.has_key? key
          @__defaults[key] = other_defaults[key]
        end

        if desc
          __desc[key] = desc
        end
      end

      self
    end