diff --git a/profile2.module b/profile2.module
index b34bca8..06e7f98 100644
--- a/profile2.module
+++ b/profile2.module
@@ -239,16 +239,31 @@ function profile2_delete_multiple(array $pids) {
 }
 
 /**
- * Implements hook_user_cancel().
+ * Deletes all profiles for given user.
+ *
+ * @param $account
+ *  A user account.
  */
-function profile2_user_cancel($edit, $account, $method) {
-  // Delete all profiles of the user in any case.
+function profile2_delete_all_by_user($account) {
   foreach (profile2_load_by_user($account) as $profile) {
     profile2_delete($profile);
   }
 }
 
 /**
+ * Implements hook_user_cancel().
+ */
+function profile2_user_cancel($edit, $account, $method) {
+  profile2_delete_all_by_user($account);
+}
+/**
+ * Implements hook_user_delete().
+ */
+function profile2_user_delete($account) {
+  profile2_delete_all_by_user($account);
+}
+
+/**
  * Create a new profile object.
  */
 function profile_create(array $values) {
