diff --git a/app/controllers/people_controller.rb b/app/controllers/people_controller.rb
index 28b5de57d9d2909da5d57cfa8ca1f4a416c69e9e..4019b871c0fe5d3e669e744cc6a901c42773171f 100644
--- a/app/controllers/people_controller.rb
+++ b/app/controllers/people_controller.rb
@@ -14,8 +14,10 @@ class PeopleController < ApplicationController
   def show
     @person = current_user.visible_person_by_id(params[:id])
     @profile = @person.profile
-    @posts = Post.find_all_by_person_id(@person.id).paginate :page => params[:page], :order => 'created_at DESC'
-    @latest_status_message = StatusMessage.newest_for(@person)
+
+    @posts = Post.where(:person_id => @person.id, :_id.in => current_user.visible_post_ids).paginate :page => params[:page], :order => 'created_at DESC'
+
+    @latest_status_message = current_user.raw_visible_posts.find_all_by__type_and_person_id("StatusMessage", params[:id]).last
     @post_count = @posts.count
   end
   
diff --git a/app/models/post.rb b/app/models/post.rb
index e1821d615e7125991303cd0b1af24ba5a9d2133c..8f30586a0847bc5494ccf17da33239078743fbd0 100644
--- a/app/models/post.rb
+++ b/app/models/post.rb
@@ -31,7 +31,7 @@ class Post
 
 #Querying
   def self.newest_for(person)
-    self.first(:person_id => person.id, :order => '_id desc')
+    self.where(:person_id => person.id, :order => '_id desc')
   end
 
 #ENCRYPTION