diff --git a/app/models/aspect_membership.rb b/app/models/aspect_membership.rb
index 18c5869bbe2827835d41b35e2373b446c241a619..87bc6c57451fc25efb88e7e52112964fead8c43a 100644
--- a/app/models/aspect_membership.rb
+++ b/app/models/aspect_membership.rb
@@ -11,9 +11,7 @@ class AspectMembership < ApplicationRecord
   has_one :person, :through => :contact
 
   before_destroy do
-    if self.contact && self.contact.aspects.size == 1
-      self.user.disconnect(self.contact)
-    end
+    user&.disconnect(contact) if contact&.aspects&.size == 1
     true
   end
 
diff --git a/spec/models/aspect_membership_spec.rb b/spec/models/aspect_membership_spec.rb
index d9585c5541008c79cf5620ea90d43e83f22503b0..d8f1de0fe1ad59c6cafb3a9b24aa00fc91e07ef0 100644
--- a/spec/models/aspect_membership_spec.rb
+++ b/spec/models/aspect_membership_spec.rb
@@ -26,5 +26,13 @@ describe AspectMembership, :type => :model do
       alice.add_contact_to_aspect(contact, aspect)
       aspect_membership.destroy
     end
+
+    it "doesn't fail destruction if the user entry was deleted in prior" do
+      aspect_membership.user.delete
+      id = aspect_membership.id
+
+      expect { AspectMembership.find(id).destroy }.not_to raise_error
+      expect(AspectMembership.where(id: id)).not_to exist
+    end
   end
 end