diff --git a/lib/mongoid/document.rb b/lib/mongoid/document.rb
index <HASH>..<HASH> 100644
--- a/lib/mongoid/document.rb
+++ b/lib/mongoid/document.rb
@@ -172,7 +172,10 @@ module Mongoid #:nodoc:
       if @building_nested
         @attributes.remove(name, child.raw_attributes)
       else
-        reset(name) { @attributes.remove(name, child.raw_attributes) }
+        reset(name) do
+          @attributes.remove(name, child.raw_attributes)
+          @attributes[name]
+        end
         notify
       end
     end
diff --git a/spec/integration/mongoid/associations_spec.rb b/spec/integration/mongoid/associations_spec.rb
index <HASH>..<HASH> 100644
--- a/spec/integration/mongoid/associations_spec.rb
+++ b/spec/integration/mongoid/associations_spec.rb
@@ -522,6 +522,7 @@ describe Mongoid::Associations do
       context "when delete_all" do
         before do
           @person.addresses << Address.new(:street => 'hello')
+          @person.addresses << Address.new(:street => 'hello')
           @person.save
           @person.addresses.delete_all
         end
Document#remove resets attribute to correct value

[resolves github issue #<I>]