Index: wp-admin/includes/nav-menu.php
===================================================================
--- wp-admin/includes/nav-menu.php	(revision 17952)
+++ wp-admin/includes/nav-menu.php	(working copy)
@@ -743,6 +743,18 @@
 							'url' => home_url('/'),
 						) );
 					}
+				} elseif ( $post_type['args']->has_archive ) {
+					$_nav_menu_placeholder = ( 0 > $_nav_menu_placeholder ) ? intval($_nav_menu_placeholder) - 1 : -1;
+					array_unshift( $posts, (object) array(
+						'ID' => 0,
+						'object_id' => $_nav_menu_placeholder,
+						'post_content' => '',
+						'post_excerpt' => '',
+						'post_title' => $post_type['args']->labels->items_archive,
+						'post_type' => 'nav_menu_item',
+						'type' => 'custom',
+						'url' => site_url( $post_type['args']->archive_slug ),
+					) );
 				}
 
 				$posts = apply_filters( 'nav_menu_items_'.$post_type_name, $posts, $args, $post_type );
Index: wp-includes/post.php
===================================================================
--- wp-includes/post.php	(revision 17952)
+++ wp-includes/post.php	(working copy)
@@ -984,20 +984,20 @@
 			$wp_rewrite->add_rewrite_tag("%$post_type%", '([^/]+)', $args->query_var ? "{$args->query_var}=" : "post_type=$post_type&name=");
 
 		if ( $args->has_archive ) {
-			$archive_slug = $args->has_archive === true ? $args->rewrite['slug'] : $args->has_archive;
+			$args->archive_slug = $args->has_archive === true ? $args->rewrite['slug'] : $args->has_archive;
 			if ( $args->rewrite['with_front'] )
-				$archive_slug = substr( $wp_rewrite->front, 1 ) . $archive_slug;
+				$args->archive_slug = substr( $wp_rewrite->front, 1 ) . $args->archive_slug;
 			else
-				$archive_slug = $wp_rewrite->root . $archive_slug;
+				$args->archive_slug = $wp_rewrite->root . $args->archive_slug;
 
-			$wp_rewrite->add_rule( "{$archive_slug}/?$", "index.php?post_type=$post_type", 'top' );
+			$wp_rewrite->add_rule( "{$args->archive_slug}/?$", "index.php?post_type=$post_type", 'top' );
 			if ( $args->rewrite['feeds'] && $wp_rewrite->feeds ) {
 				$feeds = '(' . trim( implode( '|', $wp_rewrite->feeds ) ) . ')';
-				$wp_rewrite->add_rule( "{$archive_slug}/feed/$feeds/?$", "index.php?post_type=$post_type" . '&feed=$matches[1]', 'top' );
-				$wp_rewrite->add_rule( "{$archive_slug}/$feeds/?$", "index.php?post_type=$post_type" . '&feed=$matches[1]', 'top' );
+				$wp_rewrite->add_rule( "{$args->archive_slug}/feed/$feeds/?$", "index.php?post_type=$post_type" . '&feed=$matches[1]', 'top' );
+				$wp_rewrite->add_rule( "{$args->archive_slug}/$feeds/?$", "index.php?post_type=$post_type" . '&feed=$matches[1]', 'top' );
 			}
 			if ( $args->rewrite['pages'] )
-				$wp_rewrite->add_rule( "{$archive_slug}/{$wp_rewrite->pagination_base}/([0-9]{1,})/?$", "index.php?post_type=$post_type" . '&paged=$matches[1]', 'top' );
+				$wp_rewrite->add_rule( "{$args->archive_slug}/{$wp_rewrite->pagination_base}/([0-9]{1,})/?$", "index.php?post_type=$post_type" . '&paged=$matches[1]', 'top' );
 		}
 
 		$wp_rewrite->add_permastruct($post_type, "{$args->rewrite['slug']}/%$post_type%", $args->rewrite['with_front'], $args->permalink_epmask);
@@ -1166,7 +1166,8 @@
 		'not_found' => array( __('No posts found.'), __('No pages found.') ),
 		'not_found_in_trash' => array( __('No posts found in Trash.'), __('No pages found in Trash.') ),
 		'parent_item_colon' => array( null, __('Parent Page:') ),
-		'all_items' => array( __( 'All Posts' ), __( 'All Pages' ) )
+		'all_items' => array( __( 'All Posts' ), __( 'All Pages' ) ),
+		'items_archive' => array( __( 'Post Archive' ), __( 'Page Archive' ) ),
 	);
 	$nohier_vs_hier_defaults['menu_name'] = $nohier_vs_hier_defaults['name'];
 	return _get_custom_object_labels( $post_type_object, $nohier_vs_hier_defaults );
