diff --git a/app/models/post.rb b/app/models/post.rb
index 6af603919e3aa8aa9363665156c05d6230d658a2..aea6804d3557df07d8d1d796794bb5851f427be8 100644
--- a/app/models/post.rb
+++ b/app/models/post.rb
@@ -36,6 +36,7 @@ class Post < ActiveRecord::Base
     t.add :user_like
     t.add :mentioned_people
     t.add :photos
+    t.add :nsfw
   end
 
   xml_attr :provider_display_name
@@ -125,4 +126,8 @@ class Post < ActiveRecord::Base
   def comment_email_subject
     I18n.t('notifier.a_post_you_shared')
   end
+
+  def nsfw
+    self.author.profile.nsfw?
+  end
 end
diff --git a/app/models/status_message.rb b/app/models/status_message.rb
index 3e6611e719ee11017f9b04e13aa737ff64f1050e..838f268ec7377cb701e7b2c850552d85bdcf0411 100644
--- a/app/models/status_message.rb
+++ b/app/models/status_message.rb
@@ -63,9 +63,8 @@ class StatusMessage < Post
     self.photos << Photo.where(:id => photo_ids, :author_id => self.author_id).all
   end
 
-
-  def nsfw?
-    self.raw_message.match(/#nsfw/i)
+  def nsfw
+    self.raw_message.match(/#nsfw/i) || super
   end
 
   def formatted_message(opts={})
diff --git a/features/step_definitions/posts_steps.rb b/features/step_definitions/posts_steps.rb
index 4ff04041ef41a96836378b0f6fac3c49b1561063..60adfa1b1d3bc1731eb602fccc90b5ff68d85c59 100644
--- a/features/step_definitions/posts_steps.rb
+++ b/features/step_definitions/posts_steps.rb
@@ -1,5 +1,4 @@
 Then /^the post "([^"]*)" should be marked nsfw$/ do |text|
-  pending
   assert_nsfw(text)
 end
 
diff --git a/public/javascripts/app/views/post_view.js b/public/javascripts/app/views/post_view.js
index 1db0c217850afabf80f045780796eb075bfe96f5..c722ceed84639eb4f5d6555aafe0ae1aa749f634 100644
--- a/public/javascripts/app/views/post_view.js
+++ b/public/javascripts/app/views/post_view.js
@@ -49,8 +49,7 @@ app.views.Post = app.views.StreamObject.extend({
 
   presenter : function() {
     return _.extend(this.defaultPresenter(), {
-      authorIsCurrentUser : this.authorIsCurrentUser(),
-      nsfw : this.nsfw()
+      authorIsCurrentUser : this.authorIsCurrentUser()
     })
   },
 
@@ -107,9 +106,5 @@ app.views.Post = app.views.StreamObject.extend({
 
   authorIsCurrentUser : function() {
     return this.model.get("author").id != (!!app.user() && app.user().id)
-  },
-
-  nsfw : function() {
-    return this.model.get("text") !== null && this.model.get("text").match(/#nsfw/i)
   }
 });