diff --git a/app/controllers/people_controller.rb b/app/controllers/people_controller.rb
index 6f2634be0013983849b44a20aab6a5e477593c6b..8ffa6651cb9b8e1fb60b4b3d13cd90f131818c08 100644
--- a/app/controllers/people_controller.rb
+++ b/app/controllers/people_controller.rb
@@ -10,10 +10,39 @@ class PeopleController < ApplicationController
 
   def index
     @aspect = :search
+
     @people = Person.search(params[:q]).paginate :page => params[:page], :per_page => 25, :order => 'created_at DESC'
+    
+    
+    # dont do it@people.first.diaspora_handle == params[:q]  
+    
+    #only do it if it is an email address
+    if params[:q].try(:match, Devise.email_regexp)
+      find_remote_user(params[:q])
+    end
+    
     respond_with @people
   end
 
+  def find_remote_user(account)
+
+    finger = EMWebfinger.new(account)
+    finger.on_person do |response|
+      begin
+        puts response.inspect
+        if response.class == Person
+
+          response.socket_to_uid(current_user.id, :aspects => @aspects)
+        else
+          require File.join(Rails.root,'lib/diaspora/websocket')
+          puts Diaspora::WebSocket
+          Diaspora::WebSocket.queue_to_user(current_user.id, {:class => 'person', :query => account, :response => response})
+        end
+      rescue 
+      end
+    end
+  end
+
   def show
 
     @person = Person.find(params[:id].to_id)
diff --git a/app/helpers/sockets_helper.rb b/app/helpers/sockets_helper.rb
index 7c70b8e216ffbd952b10d517d8efd146e126f1b6..1ad68551b9d3cf64b6b7f70d74bcf3f57dcd4ca6 100644
--- a/app/helpers/sockets_helper.rb
+++ b/app/helpers/sockets_helper.rb
@@ -3,17 +3,19 @@
 #   the COPYRIGHT file.
 
 module SocketsHelper
- include ApplicationHelper
+  include ApplicationHelper
 
- def obj_id(object)
-    (object.is_a? Post) ? object.id : object.post_id
+  def obj_id(object)
+    object.respond_to?(:post_id) ? object.post_id : object.id
   end
 
   def action_hash(uid, object, opts={})
     begin
       user = User.find_by_id uid
       if object.is_a? Post
-        v = render_to_string(:partial => 'shared/stream_element', :locals => {:post => object, :current_user => user}) unless object.is_a? Retraction
+        v = render_to_string(:partial => 'shared/stream_element', :locals => {:post => object, :current_user => user})
+      elsif object.is_a? Person
+        v = render_to_string(:partial => type_partial(object), :locals => {:person => object,  :current_user => user}) unless object.is_a? Retraction
       else
         v = render_to_string(:partial => type_partial(object), :locals => {:post => object, :current_user => user}) unless object.is_a? Retraction
       end
@@ -32,7 +34,7 @@ module SocketsHelper
       action_hash[:notification] = notification(object)
     end
 
-    action_hash[:mine?] = object.person && (object.person.owner.id == uid)
+    action_hash[:mine?] = object.person && (object.person.owner.id == uid) if object.respond_to?(:person)
 
     action_hash.to_json
   end
diff --git a/app/models/person.rb b/app/models/person.rb
index b7025a25e8b836cd6214dd38bd5e67a631c4ae64..62cc5759b5421ccda7e1aa141246d67056db6366 100644
--- a/app/models/person.rb
+++ b/app/models/person.rb
@@ -8,6 +8,8 @@ class Person
   include MongoMapper::Document
   include ROXML
   include Encryptor::Public
+  require File.join(Rails.root, 'lib/diaspora/websocket')
+  include Diaspora::Socketable
 
   xml_accessor :_id
   xml_accessor :diaspora_handle
@@ -148,7 +150,6 @@ class Person
       }
     }
   end
-
   protected
 
   def clean_url
diff --git a/app/views/js/_websocket_js.haml b/app/views/js/_websocket_js.haml
index 4e4d261707ba80868600fc9662df2b4c05f9c2c1..fa2636e353a7fe66707c072a4ef3d68fd3b5c866 100644
--- a/app/views/js/_websocket_js.haml
+++ b/app/views/js/_websocket_js.haml
@@ -17,6 +17,8 @@
       if(obj['notice']){
         processNotification(obj['notice']);
 
+      }else if (obj['class'] == 'people'){
+        processPerson(obj['html']);
       }else{
         debug("got a " + obj['class'] + " for aspects " + obj['aspect_ids']);
 
@@ -42,6 +44,10 @@
 
   });
 
+  function processPerson(html){
+    $('.people#stream').prepend(html).slideDown('slow', function(){})
+  }
+
   function processNotification(html){
     $('#notification').html(html).fadeIn(200).delay(4000).fadeOut(200, function(){ $(this).html("");});
   }
@@ -97,7 +103,7 @@
   function processPhotoInAlbum(photoHash){
     if (location.href.indexOf(photoHash['album_id']) == -1){
       return ;
-    }
+    }›
     html =  "<div class=\'image_thumb\' id=\'"+photoHash['id']+"\' style=\'padding-right:3px;\'> \
       <a href=\"/photos/"+ photoHash['id'] +"\"> \
       <img alt=\"New thumbnail\" src=\""+ photoHash['thumb_url'] +"\" /> \
diff --git a/app/views/people/_person.html.haml b/app/views/people/_person.html.haml
index 0a441452d0cc343ab20fea3dd0e0bf5f058f2dce..a66632e882e4081d50ca31561852616b3b5d6671 100644
--- a/app/views/people/_person.html.haml
+++ b/app/views/people/_person.html.haml
@@ -18,7 +18,7 @@
         - elsif current_user.pending_requests.find_by_person_id(person.id)
           = link_to =t('.pending_request'), aspects_manage_path
         - else
-          = render :partial => 'requests/new_request_to_person', :locals => {:aspects => @aspects, :person => person}
+          = render :partial => 'requests/new_request_to_person', :locals => {:aspects => aspects, :person => person}
 
     .info
       = person.diaspora_handle
diff --git a/app/views/people/index.html.haml b/app/views/people/index.html.haml
index f5c3fd5e64e711f695fa28126eb4d3f005563136..cf6bb2a5594fa4c77a1a6c1aca7ead89038924cc 100644
--- a/app/views/people/index.html.haml
+++ b/app/views/people/index.html.haml
@@ -7,8 +7,8 @@
     =t('.results_for')
     %u= params[:q]
 
-  %ul#stream
+  %ul#stream.people
     - for person in @people
-      = render 'people/person', :person => person
+      = render 'people/person', :person => person, :aspects => @aspects
 
   = will_paginate @people
diff --git a/spec/helpers/sockets_helper_spec.rb b/spec/helpers/sockets_helper_spec.rb
new file mode 100644
index 0000000000000000000000000000000000000000..bb65f4ccdd2c03d729553d79c3590bb27432fbea
--- /dev/null
+++ b/spec/helpers/sockets_helper_spec.rb
@@ -0,0 +1,13 @@
+#   Copyright (c) 2010, Diaspora Inc.  This file is
+#   licensed under the Affero General Public License version 3 or later.  See
+#   the COPYRIGHT file.
+#
+require 'spec_helper'
+
+describe SocketsHelper do
+  
+  describe '#obj_id' do
+
+  end
+
+end