diff --git a/app/models/comment.rb b/app/models/comment.rb
index 8c66ac62ac4dfa345ee716472b8b4979f1185da0..b62164075e3a86c727b6156675dead5ba16a4319 100644
--- a/app/models/comment.rb
+++ b/app/models/comment.rb
@@ -19,9 +19,6 @@ class Comment
   key :person_id, ObjectId
   belongs_to :person, :class_name => "Person"
   
-  after_save :send_to_view
-  
-
   def ==(other)
     (self.message == other.message) && (self.person.email == other.person.email)
   end
diff --git a/app/models/post.rb b/app/models/post.rb
index 61fe5821aa700c8a84c87e143387364b1bb3d205..f41120698c67583e970a64b09cca040a1aefbd37 100644
--- a/app/models/post.rb
+++ b/app/models/post.rb
@@ -21,8 +21,6 @@ class Post
     
   timestamps!
 
-  after_save :send_to_view
- 
   before_destroy :propagate_retraction
   after_destroy :destroy_comments, :remove_from_view
 
diff --git a/app/models/retraction.rb b/app/models/retraction.rb
index dff72b767c0d1248f96aa7f911d3eae5a0d4d06c..5f506e61d51c5180082c5c47fed22d4713e428bc 100644
--- a/app/models/retraction.rb
+++ b/app/models/retraction.rb
@@ -25,6 +25,7 @@ class Retraction
   attr_accessor :type
 
   def perform
+    Rails.logger.debug "Performing retraction for #{object.post_id}"
     begin
       return unless signature_valid?
       Rails.logger.debug("Retracting #{self.type} id: #{self.post_id}")
diff --git a/app/models/user.rb b/app/models/user.rb
index d5442244590c22d5859bfa2e1715c9c69d671a90..56a939fc776580e3e7527428d5f29645ee5e7de7 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -124,8 +124,8 @@ class User
     Rails.logger.debug("Receiving object:\n#{object.inspect}")
 
     if object.is_a? Retraction
-      Rails.logger.debug "Got a retraction for #{object.post_id}"
-      object.perform
+      object.post.unsocket_from_uid self.id
+      object.perform 
       
     elsif object.is_a? Request
       person = Diaspora::Parser.get_or_create_person_object_from_xml( xml )
@@ -141,6 +141,7 @@ class User
       person.save  
     else 
       Rails.logger.debug("Saving object with success: #{object.save}")
+      object.socket_to_uid id
     end
   end
 
diff --git a/lib/diaspora/websocket.rb b/lib/diaspora/websocket.rb
index 4ff1fff1ab6b7cc693cad54c248652b07e87c6a5..fcdcc9744915b45147e5b9b4224f1bae4f9c681c 100644
--- a/lib/diaspora/websocket.rb
+++ b/lib/diaspora/websocket.rb
@@ -39,18 +39,5 @@ module Diaspora
       SocketsController.new.outgoing(id, Retraction.for(self))
     end
 
-    def send_to_view
-      people_with_permissions.each{|f|
-        socket_to_uid f.owner_id if f.owner_id
-      }
-      socket_to_uid person.owner_id if person.owner_id
-    end
-
-     def remove_from_view 
-      people_with_permissions.each{|f|
-        unsocket_from_uid f.owner_id if f.owner_id
-      }
-      unsocket_from_uid person.owner_id if person.owner_id
-    end   
   end
 end