diff --git a/app/helpers/notifications_helper.rb b/app/helpers/notifications_helper.rb
index 7b0ef659f4c68705c77d73edbd5327a11ad4076d..7c60ec5776d6dd3e207a6dff0003547215dfa20d 100644
--- a/app/helpers/notifications_helper.rb
+++ b/app/helpers/notifications_helper.rb
@@ -1,8 +1,8 @@
 module NotificationsHelper
   def object_link(note)
-    kind = note.kind
-    translation = t("notifications.#{kind}")
-    case kind
+    target_type = note.target_type
+    translation = t("notifications.#{target_type}")
+    case target_type
     when 'request_accepted'
       translation
     when 'new_request'
diff --git a/app/helpers/sockets_helper.rb b/app/helpers/sockets_helper.rb
index 43aa91b7022bd7cd7f9ef22dc2451c610099fb23..856a6351caf2b482e09b459e971bb1500ce0065f 100644
--- a/app/helpers/sockets_helper.rb
+++ b/app/helpers/sockets_helper.rb
@@ -51,14 +51,15 @@ module SocketsHelper
         v = render_to_string(:partial => 'comments/comment', :locals => {:hash => {:comment => object, :person => object.person}})
 
       elsif object.is_a? Notification
-        v = render_to_string(:partial => 'notifications/popup', :locals => {:note => object, :person => object.person})
+        v = render_to_string(:partial => 'notifications/popup', :locals => {:note => object, :person => object.actor})
 
       else
         v = render_to_string(:partial => type_partial(object), :locals => {:post => object, :current_user => user}) unless object.is_a? Retraction
       end
     rescue Exception => e
       Rails.logger.error("event=socket_render status=fail user=#{user.diaspora_handle} object=#{object.id.to_s}")
-      raise e.original_exception
+      raise e.original_exception if e.respond_to?(:original_exception)
+      raise e
     end
     action_hash = {:class =>object.class.to_s.underscore.pluralize, :html => v, :post_id => obj_id(object)}
     action_hash.merge! opts
diff --git a/app/models/notification.rb b/app/models/notification.rb
index 625ba1197a25cd2dbbfeb0d3998ac8b0b30455db..14480536a17b431019c00679a6e6c9d8a0634c7b 100644
--- a/app/models/notification.rb
+++ b/app/models/notification.rb
@@ -3,6 +3,7 @@
 #   the COPYRIGHT file.
 #
 class Notification < ActiveRecord::Base
+  include Diaspora::Socketable
 
   belongs_to :recipient, :class_name => 'User'
   belongs_to :actor, :class_name => 'Person'
@@ -15,10 +16,12 @@ class Notification < ActiveRecord::Base
   def self.notify(recipient, target, actor)
     if target.respond_to? :notification_type
       if action = target.notification_type(recipient, actor)
-        create(:target => target,
+        n = create(:target => target,
                :action => action,
                :actor => actor,
                :recipient => recipient)
+        n.socket_to_uid(recipient.id) if n
+        n
        end
     end
   end
diff --git a/spec/models/notification_spec.rb b/spec/models/notification_spec.rb
index b8dffc9c1756be0ec20e27d082b1542caf9466d6..02a65e50c2b8cfeb8464b05d3c2abc6e78a3d34b 100644
--- a/spec/models/notification_spec.rb
+++ b/spec/models/notification_spec.rb
@@ -50,17 +50,18 @@ describe Notification do
       Notification.should_not_receive(:create)
       Notification.notify(@user, @sm, @person)
     end
-
+   context 'with a request' do
+     before do
+      @request = Request.diaspora_initialize(:from => @user.person, :to => @user2.person, :into => @aspect)
+     end
    it 'calls Notification.create if the object has a notification_type' do
-      request = Request.diaspora_initialize(:from => @user.person, :to => @user2.person, :into => @aspect)
       Notification.should_receive(:create).once
-      Notification.notify(@user, request, @person)
+      Notification.notify(@user, @request, @person)
     end
 
     it 'sockets to the recipient' do
-      request = Request.diaspora_initialize(:from => @user.person, :to => @user2.person, :into => @aspect)
-      opts = {:target_id => request.id,
-              :target_type => request.notification_type(@user, @person),
+      opts = {:target_id => @request.id,
+              :target_type => @request.notification_type(@user, @person),
               :actor_id => @person.id,
               :recipient_id => @user.id}
 
@@ -68,8 +69,9 @@ describe Notification do
       Notification.stub!(:create).and_return n
 
       n.should_receive(:socket_to_uid).once
-      Notification.notify(@user, request, @person)
+      Notification.notify(@user, @request, @person)
     end
+   end
   end
 end