diff --git a/profile2.module b/profile2.module
index 3d0af87..f2abfad 100644
--- a/profile2.module
+++ b/profile2.module
@@ -315,7 +315,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();
+  }
 }
 
 /**
@@ -323,7 +325,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();
+  }
 }
 
 /**
@@ -335,7 +339,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();
+  }
 }
 
 /**
