diff --git a/lib/noisy_failures.rb b/lib/noisy_failures.rb
index <HASH>..<HASH> 100644
--- a/lib/noisy_failures.rb
+++ b/lib/noisy_failures.rb
@@ -5,13 +5,15 @@ module DataMapper
 
     def save
       unless self.save?
-        raise self.errors.map { |e| "#{self.class}: #{e.join(', ')}" }.join("\n")
+        error_message = self.errors.map { |e| "#{self.class}: #{e.join(', ')}" }.join("\n")
+        raise SaveFailureError.new(error_message, self)
       end
     end
 
     def destroy
       unless self.destroy?
-        raise "#{self.class}: Unable to destroy, probably due to associated records."
+        error_message = "#{self.class}: Unable to destroy, probably due to associated records."
+        raise SaveFailureError.new(error_message, self)
       end
     end
updated implementation to raise instances of DM's SaveFailureError