diff --git a/app/models/post.rb b/app/models/post.rb
index eb7dff48adc3cfa375868db8dcf13403635c1ebc..1141f2fa0186941d0d5813205b04e8cfbf3c00d8 100644
--- a/app/models/post.rb
+++ b/app/models/post.rb
@@ -29,6 +29,8 @@ class Post < ActiveRecord::Base
 
   belongs_to :author, :class_name => 'Person'
 
+  validates_uniqueness_of :guid
+
   def diaspora_handle
     read_attribute(:diaspora_handle) || self.author.diaspora_handle
   end
diff --git a/spec/models/post_spec.rb b/spec/models/post_spec.rb
index 908453b27bb2e97615bc3e992a3e1dd08f83a32e..3d46719921dc5b4ee01b14af7c6d7ba1be20d9c2 100644
--- a/spec/models/post_spec.rb
+++ b/spec/models/post_spec.rb
@@ -10,6 +10,13 @@ describe Post do
     @aspect = @user.aspects.create(:name => "winners")
   end
 
+  describe 'validations' do
+    it 'validates uniqueness of guid and does not throw a db error' do
+      message = Factory(:status_message)
+      Factory.build(:status_message, :guid => message.guid).should_not be_valid
+    end
+  end
+
   describe 'deletion' do
     it 'should delete a posts comments on delete' do
       post = Factory.create(:status_message, :author => @user.person)