diff --git a/profile2.module b/profile2.module
index 66fb435..4721f1c 100644
--- a/profile2.module
+++ b/profile2.module
@@ -314,7 +314,9 @@ function profile2_profile2_type_insert(ProfileType $type) {
   // also extension modules like profile2 page might need menu rebuilds. In
   // order to avoid possible multiple rebuilds of modules we just do it always
   // but once here.
-  menu_rebuild();
+  if (empty($type->is_rebuild)) {
+    menu_rebuild();
+  }
 }
 
 /**
@@ -322,7 +324,9 @@ function profile2_profile2_type_insert(ProfileType $type) {
  */
 function profile2_profile2_type_update(ProfileType $type) {
   // @see profile2_profile2_type_insert()
-  menu_rebuild();
+  if (empty($type->is_rebuild)) {
+    menu_rebuild();
+  }
 }
 
 /**
@@ -334,7 +338,9 @@ function profile2_profile2_type_delete($type) {
     profile2_delete_multiple($pids);
   }
   // @see profile2_profile2_type_insert()
-  menu_rebuild();
+  if (empty($type->is_rebuild)) {
+    menu_rebuild();
+  }
 }
 
 
