Index: CHANGELOG.txt
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/admin_menu/CHANGELOG.txt,v
retrieving revision 1.10.2.63.2.17
diff -u -p -r1.10.2.63.2.17 CHANGELOG.txt
--- CHANGELOG.txt	24 Apr 2009 21:44:44 -0000	1.10.2.63.2.17
+++ CHANGELOG.txt	2 May 2009 21:57:26 -0000
@@ -6,6 +6,7 @@ Admin Menu x.x-x.x, xxxx-xx-xx
 
 Admin Menu 5.x-3.x, xxxx-xx-xx
 ------------------------------
+#221797 by sun: Fixed some content-types missing below admin/content/node.
 #167020 by sun: Fixed some accessible menu items are no longer displayed.
 #420806 by sun: Fixed admin_menu not always rebuilt when menu is rebuilt.
 #345984 by sun: Fixed admin_menu's settings item not displayed.
Index: admin_menu.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/admin_menu/admin_menu.inc,v
retrieving revision 1.1.4.18.2.6
diff -u -p -r1.1.4.18.2.6 admin_menu.inc
--- admin_menu.inc	24 Apr 2009 21:44:44 -0000	1.1.4.18.2.6
+++ admin_menu.inc	2 May 2009 21:55:55 -0000
@@ -213,31 +213,30 @@ function admin_menu_adjust_items(&$_admi
       'path' => $_menu['items'][$mid_user]['path'],
       'weight' => -99,
       'class' => 'admin-menu-action',
-    ));
+    ), $mid_user);
     $mid_logout = $_menu['path index']['logout'];
     admin_menu_add_item($_admin_menu, $mid_admin, array(
       'title' => t('Logout'),
       'path' => $_menu['items'][$mid_logout]['path'],
       'weight' => -100,
       'class' => 'admin-menu-action',
-    ));
+    ), $mid_logout);
   }
 
   // Add 'Create <content_type>' menu items to Content management > Content.
   // If an user does not have 'administer nodes' permission, we need to copy
   // the 'Create content' item from the Navigation menu into 'Content
   // management' and append node/add/* items there instead.
+  $mid_node_add = $_menu['path index']['node/add'];
   if (!user_access('administer nodes')) {
     $mid_content_management = $_admin_menu['index']['admin/content'];
-    $mid_node_add = $_menu['path index']['node/add'];
     $create_content = $_menu['items'][$mid_node_add];
     $create_content['weight'] = 0;
-    $mid_content = admin_menu_add_item($_admin_menu, $mid_content_management, $create_content);
+    $mid_content = admin_menu_add_item($_admin_menu, $mid_content_management, $create_content, $mid_node_add);
   }
   else {
     $mid_content = $_admin_menu['index']['admin/content/node'];
   }
-  $mid_node_add = $_menu['path index']['node/add'];
   admin_menu_copy_items($_admin_menu, $mid_node_add, $mid_content, t('Add !title'));
 
   // Add 'Edit <content_type>' menu items to Content management > Content types.
@@ -348,7 +347,7 @@ function admin_menu_copy_items(&$_admin_
       }
       // Only add child to target if it does not already exist.
       if (!in_array($mid, $_admin_menu[$target_pid]['children'])) {
-        admin_menu_add_item($_admin_menu, $target_pid, $item);
+        admin_menu_add_item($_admin_menu, $target_pid, $item, $mid);
       }
 
       // Recurse into children.
Index: admin_menu.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/admin_menu/admin_menu.module,v
retrieving revision 1.26.2.33.2.10
diff -u -p -r1.26.2.33.2.10 admin_menu.module
--- admin_menu.module	24 Apr 2009 20:26:14 -0000	1.26.2.33.2.10
+++ admin_menu.module	2 May 2009 21:56:53 -0000
@@ -485,26 +485,40 @@ function admin_menu_item_url(&$_admin_me
  * @param $item
  *   An menu item array for the menu system. May contain the key 'weight' to
  *   adjust the item's weight.
+ * @param $mid
+ *   (Optional) The menu item id to use.  Should be specified for already
+ *   existing menu items that are copied/relocated elsewhere.
  *
  * @return
  *   The id of the new menu item.
  */
-function admin_menu_add_item(&$_admin_menu, $pid, $item) {
+function admin_menu_add_item(&$_admin_menu, $pid, $item, $mid = NULL) {
+  static $custom_mid;
+
   if (empty($item['path'])) {
     return FALSE;
   }
   $item['pid'] = $pid;
   $item['children'] = array();
-  $id = max(array_keys($_admin_menu)) + 1;
-  $_admin_menu[$id] = $item;
-  $_admin_menu[$pid]['children'][] = $id;
-  $_admin_menu['index'][$item['path']] = $id;
-  admin_menu_item_url($_admin_menu, $id);
+  if (!isset($custom_mid)) {
+    $custom_mid = max(array_keys($_admin_menu)) + 10000;
+  }
+  if (!isset($mid)) {
+    $mid = $custom_mid++;
+  }
+  else {
+    // Ensure we have an integer.
+    $mid = (int) $mid;
+  }
+  $_admin_menu[$mid] = $item;
+  $_admin_menu[$pid]['children'][] = $mid;
+  $_admin_menu['index'][$item['path']] = $mid;
+  admin_menu_item_url($_admin_menu, $mid);
 
   // Sort items.
   usort($_admin_menu[$pid]['children'], '_admin_menu_sort');
 
-  return $id;
+  return $mid;
 }
 
 /**
