summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/install.inc9
1 files changed, 6 insertions, 3 deletions
diff --git a/includes/install.inc b/includes/install.inc
index b30d02a28..6d6d4349e 100644
--- a/includes/install.inc
+++ b/includes/install.inc
@@ -373,12 +373,15 @@ function drupal_install_system() {
* The module to uninstall.
*/
function drupal_uninstall_module($module) {
+ // First, retrieve all the module's menu paths from db.
+ drupal_load('module', $module);
+ $paths = module_invoke($module, 'menu');
+
+ // Uninstall the module(s).
module_load_install($module);
module_invoke($module, 'uninstall');
- // Remove menu links for paths declared by this module.
- drupal_load('module', $module);
- $paths = module_invoke($module, 'menu');
+ // Now remove the menu links for all paths declared by this module.
if (!empty($paths)) {
$paths = array_keys($paths);
// Clean out the names of load functions.