Index: wp-includes/nav-menu-template.php
===================================================================
--- wp-includes/nav-menu-template.php	(revision 14606)
+++ wp-includes/nav-menu-template.php	(working copy)
@@ -193,7 +193,7 @@
 function wp_nav_menu( $args = array() ) {
 	$defaults = array( 'menu' => '', 'container' => 'div', 'container_class' => '', 'menu_class' => 'menu', 'echo' => true,
 	'fallback_cb' => 'wp_page_menu', 'before' => '', 'after' => '', 'link_before' => '', 'link_after' => '',
-	'depth' => 0, 'walker' => '', 'context' => 'frontend' );
+	'depth' => 0, 'walker' => '', 'context' => 'frontend', 'slot' => '' );
 
 	$args = wp_parse_args( $args, $defaults );
 	$args = apply_filters( 'wp_nav_menu_args', $args );
@@ -202,6 +202,12 @@
 	// Get the nav menu
 	$menu = wp_get_nav_menu_object( $args->menu );
 
+	if ( ! $menu && $slot ) {
+		$slots = get_nav_menu_slots();
+		if ( isset($slots) && isset($slots[$slot]) )
+			$menu = wp_get_nav_menu_object( $slots['slot'] );
+	}
+
 	// If we couldn't find a menu based off the menu argument 
 	// get the first menu that has items.
 	if ( ! $menu ) {
Index: wp-includes/nav-menu.php
===================================================================
--- wp-includes/nav-menu.php	(revision 14606)
+++ wp-includes/nav-menu.php	(working copy)
@@ -62,6 +62,31 @@
 }
 
 /**
+ * Register nav menus for a theme.
+ *
+ * @since 3.0.0
+ *
+ * @param array Associative array of menu slot identifiers and descriptions.
+ */
+function register_nav_menus( $menus = array() ) {
+	global $_wp_registered_nav_menus;
+
+	add_theme_support( 'nav-menus' );
+
+	$_wp_registered_nav_menus = $menus;
+}
+
+function get_registered_nav_menus() {
+	global $_wp_registered_nav_menus;
+
+	return $_wp_registered_nav_menus;
+}
+
+function get_nav_menu_slots() {
+	return get_theme_mod('nav_menu_slots');
+}
+
+/**
  * Determine whether the given ID is a nav menu item.
  *
  * @since 3.0.0
Index: wp-content/themes/twentyten/functions.php
===================================================================
--- wp-content/themes/twentyten/functions.php	(revision 14606)
+++ wp-content/themes/twentyten/functions.php	(working copy)
@@ -80,7 +80,7 @@
 	add_theme_support( 'post-thumbnails' );
 
 	// This theme uses wp_nav_menu()
-	add_theme_support( 'nav-menus' );
+	register_nav_menus( array('main' => __('Main Menu')) );
 
 	// Add default posts and comments RSS feed links to head
 	add_theme_support( 'automatic-feed-links' );
Index: wp-admin/nav-menus.php
===================================================================
--- wp-admin/nav-menus.php	(revision 14606)
+++ wp-admin/nav-menus.php	(working copy)
@@ -482,7 +482,18 @@
 									<input name="menu-name" id="menu-name" type="text" class="menu-name regular-text menu-item-textbox input-with-default-title" title="Enter menu name here." value="<?php echo esc_attr( $nav_menu_selected_title  ); ?>" />
 									<br class="clear" />
 								</label>
-
+								<?php if ( ! empty( $nav_menu_selected_id ) && $slots = get_registered_nav_menus() ) : ?>
+								<label class="menu-name-label howto open-label" for="menu-slot">
+									<span><?php _e('Theme Slot'); ?></span>
+									<select id="menu-slot" name="menu-slot">
+									<?php foreach ( $slots as $slot_key => $slot_text ) {
+										echo '<option value="' . esc_attr($slot_key) . '">' . esc_html($slot_text) . '</option>';
+									}
+									?>
+									</select>
+									<br class="clear" />
+								</label>
+								<?php endif; ?>
 								<div class="publishing-action">
 									<input class="button-primary" name="save_menu" type="submit" value="<?php empty($nav_menu_selected_id) ? esc_attr_e('Create Menu') : esc_attr_e('Save Menu'); ?>" />
 								</div><!--END .publishing-action-->
