diff --git a/expire.module b/expire.module
index 6633729..6005443 100644
--- a/expire.module
+++ b/expire.module
@@ -262,6 +262,14 @@ function expire_node($node) {
     if (!isset($node->menu['menu_name'])) {
       $menu_node = clone $node;
       menu_node_prepare($menu_node);
+
+      // Workaround for issue #1247506. See #1245094 for backstory.
+      if (!empty($menu_node->menu)) {
+        // If the node has a menu item(with a valid mlid) it must be flagged
+        // 'enabled'.
+        $menu_node->menu['enabled'] = (int) (bool) $node->menu['mlid'];
+      }
+
       $menu = menu_tree_all_data($menu_node->menu['menu_name']);
     }
     else {
