diff --git a/lib/virtus/attribute_set.rb b/lib/virtus/attribute_set.rb
index <HASH>..<HASH> 100644
--- a/lib/virtus/attribute_set.rb
+++ b/lib/virtus/attribute_set.rb
@@ -107,7 +107,7 @@ module Virtus
     #
     # @api public
     def []=(name, attribute)
-      delete(name)
+      @attributes.delete(self[name])  # remove original same-named attribute
       @attributes << attribute
       @index[name] = @string_index[name.to_s.freeze] = attribute
     end
@@ -126,18 +126,6 @@ module Virtus
 
   private
 
-    # Delete the Attribute by name
-    #
-    # @param [Symbol] name
-    #
-    # @return [undefined]
-    #
-    # @api private
-    def delete(name)
-      @attributes.delete(@index.delete(name))
-      @string_index.delete(name.to_s)
-    end
-
     # Add the attributes to the index
     #
     # @param [Array<Attribute>] attributes
Refactor Virtus::AttributeSet to be simpler

* No need to delete the original attribute from the indexes since they
  will get overwritten on the last line of #[]= anyway.