diff --git a/expire.module b/expire.module
index 068326f..badd80b 100644
--- a/expire.module
+++ b/expire.module
@@ -260,9 +260,10 @@ function expire_node($node) {
   // Get menu and flush related items in the menu.
   if (module_exists('menu') && variable_get('expire_flush_menu_items', EXPIRE_FLUSH_MENU_ITEMS) != 0) {
     if (!isset($node->menu['menu_name'])) {
-      menu_node_prepare($node);
+      $menu_node = clone $node;
+      menu_node_prepare($menu_node);
     }
-    $menu = menu_tree_all_data($node->menu['menu_name']);
+    $menu = menu_tree_all_data($menu_node->menu['menu_name']);
     $tempa = NULL;
     $tempb = NULL;
     if (variable_get('expire_flush_menu_items', EXPIRE_FLUSH_MENU_ITEMS) == 1) {
