Index: wp-includes/post.php
===================================================================
--- wp-includes/post.php	(revision 13702)
+++ wp-includes/post.php	(working copy)
@@ -18,7 +18,8 @@
 	register_post_type( 'post', array(	'label' => __('Posts'),
 										'singular_label' => __('Post'),
 										'public' => true,
-										'show_ui' => false,
+										'show_ui' => true,
+										'menu_position' => 5,
 										'_builtin' => true,
 										'_edit_link' => 'post.php?post=%d',
 										'capability_type' => 'post',
@@ -31,7 +32,9 @@
 	register_post_type( 'page', array(	'label' => __('Pages'),
 										'singular_label' => __('Page'),
 										'public' => true,
-										'show_ui' => false,
+										'show_ui' => true,
+										'menu_position' => 20,
+										'menu_class' => 'menu-icon-pages',
 										'_builtin' => true,
 										'_edit_link' => 'post.php?post=%d',
 										'capability_type' => 'page',
@@ -43,7 +46,9 @@
 
 	register_post_type( 'attachment', array('label' => __('Media'),
 											'public' => true,
-											'show_ui' => false,
+											'show_ui' => true,
+											'menu_position' => 10,
+											'menu_class' => 'menu-icon-media',
 											'_builtin' => true,
 											'_edit_link' => 'media.php?attachment_id=%d',
 											'capability_type' => 'post',
@@ -762,6 +767,8 @@
  * exclude_from_search - Whether to exclude posts with this post type from search results. Defaults to true if the type is not public, false if the type is public.
  * publicly_queryable - Whether post_type queries can be performed from the front page.  Defaults to whatever public is set as.
  * show_ui - Whether to generate a default UI for managing this post type. Defaults to true if the type is public, false if the type is not public.
+ * menu_position - The position in the menu order the post type should appear
+ * menu_class - The menu class to apply to the post type to allow for a custom icon. Defaults to the posts icon.
  * inherit_type - The post type from which to inherit the edit link and capability type. Defaults to none.
  * capability_type - The post type to use for checking read, edit, and delete capabilities. Defaults to "post".
  * edit_cap - The capability that controls editing a particular object of this post type. Defaults to "edit_$capability_type" (edit_post).
@@ -790,7 +797,7 @@
 		$wp_post_types = array();
 
 	// Args prefixed with an underscore are reserved for internal use.
-	$defaults = array('label' => false, 'singular_label' => false, 'description' => '', 'publicly_queryable' => null, 'exclude_from_search' => null, '_builtin' => false, '_edit_link' => 'post.php?post=%d', 'capability_type' => 'post', 'hierarchical' => false, 'public' => false, 'rewrite' => true, 'query_var' => true, 'supports' => array(), 'register_meta_box_cb' => null, 'taxonomies' => array(), 'show_ui' => null );
+	$defaults = array('label' => false, 'singular_label' => false, 'description' => '', 'publicly_queryable' => null, 'exclude_from_search' => null, '_builtin' => false, '_edit_link' => 'post.php?post=%d', 'capability_type' => 'post', 'hierarchical' => false, 'public' => false, 'rewrite' => true, 'query_var' => true, 'supports' => array(), 'register_meta_box_cb' => null, 'taxonomies' => array(), 'show_ui' => null, 'menu_position' => null, 'menu_class' => null );
 	$args = wp_parse_args($args, $defaults);
 	$args = (object) $args;
 
Index: wp-admin/menu.php
===================================================================
--- wp-admin/menu.php	(revision 13702)
+++ wp-admin/menu.php	(working copy)
@@ -79,36 +79,12 @@
 
 $menu[4] = array( '', 'read', 'separator1', '', 'wp-menu-separator' );
 
-$menu[5] = array( __('Posts'), 'edit_posts', 'edit.php', '', 'open-if-no-js menu-top menu-icon-posts', 'menu-posts', 'div' );
-	$submenu['edit.php'][5]  = array( __('Edit'), 'edit_posts', 'edit.php' );
-	/* translators: add new post */
-	$submenu['edit.php'][10]  = array( _x('Add New', 'post'), 'edit_posts', 'post-new.php' );
-
-	$i = 15;
-	foreach ( $wp_taxonomies as $tax ) {
-		if ( ! $tax->show_ui || ! in_array('post', (array) $tax->object_type, true) )
-			continue;
-
-		$submenu['edit.php'][$i++] = array( esc_attr($tax->label), $tax->manage_cap, 'edit-tags.php?taxonomy=' . $tax->name );
-	}
-	unset($tax);
-
-$menu[10] = array( __('Media'), 'upload_files', 'upload.php', '', 'menu-top menu-icon-media', 'menu-media', 'div' );
-	$submenu['upload.php'][5] = array( __('Library'), 'upload_files', 'upload.php');
-	/* translators: add new file */
-	$submenu['upload.php'][10] = array( _x('Add New', 'file'), 'upload_files', 'media-new.php');
-
 $menu[15] = array( __('Links'), 'manage_links', 'link-manager.php', '', 'menu-top menu-icon-links', 'menu-links', 'div' );
 	$submenu['link-manager.php'][5] = array( __('Edit'), 'manage_links', 'link-manager.php' );
 	/* translators: add new links */
 	$submenu['link-manager.php'][10] = array( _x('Add New', 'link'), 'manage_links', 'link-add.php' );
 	$submenu['link-manager.php'][15] = array( __('Link Categories'), 'manage_categories', 'edit-link-categories.php' );
 
-$menu[20] = array( __('Pages'), 'edit_pages', 'edit.php?post_type=page', '', 'menu-top menu-icon-pages', 'menu-pages', 'div' );
-	$submenu['edit.php?post_type=page'][5] = array( __('Edit'), 'edit_pages', 'edit.php?post_type=page' );
-	/* translators: add new page */
-	$submenu['edit.php?post_type=page'][10] = array( _x('Add New', 'page'), 'edit_pages', 'post-new.php?post_type=page' );
-
 $menu[25] = array( sprintf( __('Comments %s'), "<span id='awaiting-mod' class='count-$awaiting_mod'><span class='pending-count'>" . number_format_i18n($awaiting_mod) . "</span></span>" ), 'edit_posts', 'edit-comments.php', '', 'menu-top menu-icon-comments', 'menu-comments', 'div' );
 
 $_wp_last_object_menu = 25; // The index of the last top-level menu in the object menu group
@@ -117,7 +93,10 @@
 	$_wp_last_object_menu++;
 	$ptype_obj = get_post_type_object($ptype);
 	
-	$menu[$_wp_last_object_menu] = array(esc_attr($ptype_obj->label), $ptype_obj->edit_type_cap, "edit.php?post_type=$ptype", '', 'menu-top menu-icon-posts', 'menu-' . sanitize_html_class($ptype), 'div');
+	$ptype_menu_position = is_int($ptype_obj->menu_position) ? $ptype_obj->menu_position : $_wp_last_object_menu;
+	$ptype_menu_class = is_string( $ptype_obj->menu_class ) ? $ptype_obj->menu_class : 'menu-icon-posts';
+	
+	$menu[$ptype_menu_position] = array(esc_attr($ptype_obj->label), $ptype_obj->edit_type_cap, "edit.php?post_type=$ptype", '', 'menu-top ' . $ptype_menu_class, 'menu-' . sanitize_html_class($ptype), 'div');
 	$submenu["edit.php?post_type=$ptype"][5]  = array( __('Edit'), 'edit_posts',  "edit.php?post_type=$ptype");
 	/* translators: add new custom post type */
 	$submenu["edit.php?post_type=$ptype"][10]  = array( _x('Add New', 'post'), 'edit_posts', "post-new.php?post_type=$ptype" );
@@ -130,7 +109,7 @@
 		$submenu["edit.php?post_type=$ptype"][$i++] = array( esc_attr($tax->label), $tax->manage_cap, "edit-tags.php?taxonomy=$tax->name&amp;post_type=$ptype" );
 	}
 }
-unset($ptype, $ptype_obj);
+unset($ptype, $ptype_obj, $ptype_menu_position, $ptype_menu_class);
 
 $menu[59] = array( '', 'read', 'separator2', '', 'wp-menu-separator' );
 
