diff --git a/app/models/user.rb b/app/models/user.rb
index 012e6c923306d502ba06b2867efcbf23ac317916..1f82115ae6ab966dd3f91125bb4977f08a743de6 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -243,6 +243,10 @@ class User
 
       else
         object.perform self.id
+        groups = self.groups_with_person(object.person)
+        groups.each{ |group| group.post_ids.delete(ensure_bson(object.post_id))
+                             group.save
+        }
       end
     elsif object.is_a? Request
       person = Diaspora::Parser.get_or_create_person_object_from_xml( xml )
diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb
index 26f3397d452215b27590923312b0752fd0cd167d..15de4bdbe40b7172464465fc7db52e4e8b28b7ef 100644
--- a/spec/models/group_spec.rb
+++ b/spec/models/group_spec.rb
@@ -55,16 +55,16 @@ describe Group do
   describe 'posting' do
     
     it 'should add post to group via post method' do
-      @group = @user.group(:name => 'losers', :people => [@friend])
+      group = @user.group(:name => 'losers', :people => [@friend])
 
-      status_message = @user.post( :status_message, :message => "hey", :group_id => @group.id )
+      status_message = @user.post( :status_message, :message => "hey", :group_id => group.id )
       
-      @group.reload
-      @group.posts.include?(status_message).should be true
+      group.reload
+      group.posts.include?(status_message).should be true
     end
 
     it 'should add post to group via receive method' do
-      group = @user.group(:name => 'losers')
+      group  = @user.group(:name => 'losers')
       group2 = @user2.group(:name => 'winners')
       friend_users(@user, group, @user2, group2)
 
@@ -77,5 +77,24 @@ describe Group do
       @user.visible_posts(:by_members_of => group).include?(message).should be true
     end
 
+    it 'should retract the post from the groups as well' do 
+      group  = @user.group(:name => 'losers')
+      group2 = @user2.group(:name => 'winners')
+      friend_users(@user, group, @user2, group2)
+
+      message = @user2.post(:status_message, :message => "Hey Dude")
+      
+      @user.receive message.to_diaspora_xml
+      group.reload
+  
+      group.post_ids.include?(message.id).should be true
+
+      retraction = @user2.retract(message)
+      @user.receive retraction.to_diaspora_xml
+
+      group.reload
+      group.post_ids.include?(message.id).should be false
+    end
   end
+
 end