diff --git a/lib/diaspora/parser.rb b/lib/diaspora/parser.rb
index 07439dbb90d96212f0827531209c8d3e8ed5430e..b404fe3fcf66a9e26d52d84cd6dec707fb393bff 100644
--- a/lib/diaspora/parser.rb
+++ b/lib/diaspora/parser.rb
@@ -22,7 +22,8 @@ module Diaspora
       body.children.each do |post|
         begin
           object = post.name.camelize.constantize.from_xml post.to_s
-          if object.respond_to? :person  
+          if object.is_a? Retraction
+          elsif object.respond_to? :person  
             object.person =  parse_owner_from_xml post.to_s 
           elsif object.is_a? Profile
             puts "got into parse objects from xml PROFILE"
@@ -31,8 +32,12 @@ module Diaspora
             person.save  
           end
           objects << object
-        rescue
-          Rails.logger.info "Not a real type: #{object.to_s}"
+        rescue NameError => e
+          if e.message.include? 'wrong constant name'
+            Rails.logger.info "Not a real type: #{object.to_s}"
+          else
+            raise e
+          end
         end
       end
       objects
@@ -43,6 +48,7 @@ module Diaspora
       objects.each do |p|
         Rails.logger.info("Receiving object:\n#{p.inspect}")
         if p.is_a? Retraction
+          puts "Got a retraction for #{p.post_id}"
           p.perform
         elsif p.is_a? Request
           User.owner.receive_friend_request(p)
diff --git a/spec/lib/diaspora_parser_spec.rb b/spec/lib/diaspora_parser_spec.rb
index 4b9ecbcb68c499622ee338f1dda5b676c82331a5..6b1578e688b495ae92630cc17b1ac8d374023b16 100644
--- a/spec/lib/diaspora_parser_spec.rb
+++ b/spec/lib/diaspora_parser_spec.rb
@@ -105,6 +105,7 @@ describe Diaspora::Parser do
       message = Factory.create(:status_message, :person => person)
       retraction = Retraction.for(message)
       request = Post.build_xml_for( [retraction] )
+      puts request
 
       StatusMessage.count.should == 1
       store_objects_from_xml( request )
diff --git a/spec/models/retraction_spec.rb b/spec/models/retraction_spec.rb
index 276a74cb60638b59d3d35fb1bbf47b24902402aa..f33557edaccd361295351f8e4388c6fbee28a546 100644
--- a/spec/models/retraction_spec.rb
+++ b/spec/models/retraction_spec.rb
@@ -1,23 +1,22 @@
 require File.dirname(__FILE__) + '/../spec_helper'
 
 describe Retraction do
-  describe "posts" do
     before do
       @user = Factory.create(:user)
       @post = Factory.create(:status_message, :person => @user)
     end
-
+  describe 'serialization' do
     it 'should have a post id after serialization' do
       retraction = Retraction.for(@post)
       xml = retraction.to_xml.to_s
       xml.include?(@post.id.to_s).should == true
     end
-
+  end
+  describe 'dispatching' do
     it 'should dispatch a message on delete' do
       Factory.create(:person)
       Post.send(:class_variable_get, :@@queue).should_receive(:add_post_request)
       @post.destroy
     end
-
   end
 end