diff --git a/modules/node/node.pages.inc b/modules/node/node.pages.inc
index 89a1593..3b8c820 100644
--- a/modules/node/node.pages.inc
+++ b/modules/node/node.pages.inc
@@ -16,8 +16,19 @@ function node_page_edit($node) {
 }
 
 function node_add_page() {
-  $item = menu_get_item();
-  $content = system_admin_menu_block($item);
+  $content = array();
+  
+  node_type_cache_reset();
+  foreach (node_type_get_types() as $type) {
+    if (node_access('create', $type->type)) {
+      $type_url_str = str_replace('_', '-', $type->type);
+      $content[] = array(
+           'href' => 'node/add/' . $type_url_str,
+           'title' => t($type->name),
+           'description' => t($type->description),
+           'localized_options' => array());
+    }
+  }
   // Bypass the node/add listing if only one content type is available.
   if (count($content) == 1) {
     $item = array_shift($content);
