Index: wp-includes/general-template.php
===================================================================
--- wp-includes/general-template.php	(revision 18664)
+++ wp-includes/general-template.php	(working copy)
@@ -149,18 +149,39 @@
  * @param boolean $echo Default to echo and not return the form.
  */
 function get_search_form($echo = true) {
+	static $search_form_counter = 0;
+        static $_first_search_form = true;
+
 	do_action( 'get_search_form' );
 
+        // Initialize the id values
+        $form_id = 'searchform';
+        $text_id = 's';
+        $submit_id = 'searchsubmit';
+        $first_search_form = $_first_search_form;
+        
+        // If this is the first time the form has been displayed, flip the flag
+        // to false so the form id and submit id won't be displayed again
+        if ($_first_search_form) {
+            $_first_search_form = false;
+        } else {
+            // We still need the text counter, though
+            $text_id .= '-' . $search_form_counter;
+        }
+        
+        // Incremement the counter
+        $search_form_counter++;
+
 	$search_form_template = locate_template('searchform.php');
 	if ( '' != $search_form_template ) {
 		require($search_form_template);
 		return;
 	}
 
-	$form = '<form role="search" method="get" id="searchform" action="' . home_url( '/' ) . '" >
-	<div><label class="screen-reader-text" for="s">' . __('Search for:') . '</label>
-	<input type="text" value="' . get_search_query() . '" name="s" id="s" />
-	<input type="submit" id="searchsubmit" value="'. esc_attr__('Search') .'" />
+	$form = '<form role="search" method="get"' . ($first_search_form ? 'id="' . $form_id . '"' : '') . ' class="searchform" action="' . home_url( '/' ) . '" >
+	<div><label class="screen-reader-text" for="' . $text_id . '">' . __('Search for:') . '</label>
+	<input type="text" class="searchinput field" value="' . get_search_query() . '" name="s" id="' . $text_id . '" />
+	<input type="submit" class="searchsubmit submit" ' . ($first_search_form ? 'id="' . $submit_id . '"' : '') . ' value="'. esc_attr__('Search') .'" />
 	</div>
 	</form>';
 
Index: wp-content/themes/twentyeleven/searchform.php
===================================================================
--- wp-content/themes/twentyeleven/searchform.php	(revision 18664)
+++ wp-content/themes/twentyeleven/searchform.php	(working copy)
@@ -7,8 +7,8 @@
  * @since Twenty Eleven 1.0
  */
 ?>
-	<form method="get" id="searchform" action="<?php echo esc_url( home_url( '/' ) ); ?>">
-		<label for="s" class="assistive-text"><?php _e( 'Search', 'twentyeleven' ); ?></label>
-		<input type="text" class="field" name="s" id="s" placeholder="<?php esc_attr_e( 'Search', 'twentyeleven' ); ?>" />
-		<input type="submit" class="submit" name="submit" id="searchsubmit" value="<?php esc_attr_e( 'Search', 'twentyeleven' ); ?>" />
-	</form>
+<form method="get" <?php if ($first_search_form) : ?>id="<?php echo $form_id; ?>"<? endif; ?> class="searchform" action="<?php echo esc_url( home_url( '/' ) ); ?>">
+    <label for="<?php echo $text_id; ?>" class="assistive-text"><?php _e( 'Search', 'twentyeleven' ); ?></label>
+    <input type="text" class="searchinput field" name="s" id="<?php echo $text_id; ?>" placeholder="<?php esc_attr_e( 'Search', 'twentyeleven' ); ?>" />
+    <input type="submit" class="searchsubmit submit" name="submit" <?php if ($first_search_form) : ?>id="<?php echo $submit_id; ?>"<?php endif; ?> value="<?php esc_attr_e( 'Search', 'twentyeleven' ); ?>" />
+</form>
Index: wp-content/themes/twentyeleven/style.css
===================================================================
--- wp-content/themes/twentyeleven/style.css	(revision 18664)
+++ wp-content/themes/twentyeleven/style.css	(working copy)
@@ -278,7 +278,8 @@
 	width: auto;
 }
 /* Make sure the logo and search form don't collide */
-.one-column #branding #searchform {
+.one-column #branding #searchform,
+.one-column #branding .searchform {
 	right: 40px;
 	top: 4em;
 }
@@ -453,7 +454,8 @@
 input[type=text] {
 	padding: 3px;
 }
-input#s {
+input#s,
+input.searchinput {
 	background: url(images/search.png) no-repeat 5px 6px;
 	-moz-border-radius: 2px;
 	border-radius: 2px;
@@ -462,7 +464,8 @@
 	line-height: 1.2em;
 	padding: 4px 10px 4px 28px;
 }
-input#searchsubmit {
+input#searchsubmit,
+input.searchsubmit {
 	display: none;
 }
 
@@ -620,16 +623,19 @@
 }
 
 /* Search Form */
-#branding #searchform {
+#branding #searchform,
+#branding .searchform {
 	position: absolute;
 	top: 3.8em;
 	right: 7.6%;
 	text-align: right;
 }
-#branding #searchform div {
+#branding #searchform div,
+#branding .searchform div {
 	margin: 0;
 }
-#branding #s {
+#branding #s,
+#branding .searchinput {
 	float: right;
 	-webkit-transition-duration: 400ms;
 	-webkit-transition-property: width, background;
@@ -642,30 +648,38 @@
 	-o-transition-timing-function: ease;
 	width: 72px;
 }
-#branding #s:focus {
+#branding #s:focus,
+#branding .searchinput:focus {
 	background-color: #f9f9f9;
 	width: 196px;
 }
-#branding #searchsubmit {
+#branding #searchsubmit,
+#branding .searchsubmit {
 	display: none;
 }
-#branding .only-search #searchform {
+#branding .only-search #searchform,
+#branding .only-search .searchform {
 	top: 5px;
 	z-index: 1;
 }
-#branding .only-search #s {
+#branding .only-search #s,
+#branding .only-search .searchinput {
 	background-color: #666;
 	border-color: #000;
 	color: #222;
 }
 #branding .only-search #s,
-#branding .only-search #s:focus {
+#branding .only-search #s:focus,
+#branding .only-search .searchinput,
+#branding .only-search .searchinput:focus {
 	width: 85%;
 }
-#branding .only-search #s:focus {
+#branding .only-search #s:focus,
+#branding .only-search .searchinput:focus {
 	background-color: #bbb;
 }
-#branding .with-image #searchform {
+#branding .with-image #searchform,
+#branding .with-image .searchform {
 	top: auto;
 	bottom: -27px;
 	max-width: 195px;
@@ -787,7 +801,8 @@
 	border-top: 1px solid #ddd;
 	padding: 6px 10px 6px 0;
 }
-.entry-content #s {
+.entry-content #s,
+.entry-content .searchinput {
 	width: 75%;
 }
 .comment-content ul,
@@ -1277,7 +1292,8 @@
 /* =error404
 ----------------------------------------------- */
 
-.error404 #main #searchform {
+.error404 #main #searchform,
+.error404 #main .searchform {
 	background: #f9f9f9;
 	border: 1px solid #ddd;
 	border-width: 1px 0;
@@ -1285,7 +1301,8 @@
 	overflow: hidden;
 	padding: 1.625em 8.9%;
 }
-.error404 #main #s {
+.error404 #main #s,
+.error404 #main .searchinput {
 	width: 95%;
 }
 .error404 #main .widget {
@@ -1759,10 +1776,12 @@
 .widget_search form {
 	margin: 0 0 1.625em;
 }
-.widget_search #s {
+.widget_search #searchsubmit,
+.widget_search .searchinput {
 	width: 77%;
 }
-.widget_search #searchsubmit {
+.widget_search #searchsubmit,
+.widget_search .searchsubmit {
 	background: #ddd;
 	border: 1px solid #ccc;
 	-webkit-box-shadow: inset 0px -1px 1px rgba(0, 0, 0, 0.09);
@@ -1774,7 +1793,8 @@
 	position: relative;
 	top: -2px;
 }
-.widget_search #searchsubmit:active {
+.widget_search #searchsubmit:active,
+.widget_search .searchsubmit:active {
 	background: #1982d1;
 	border-color: #0861a5;
 	-webkit-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.1);
@@ -2399,7 +2419,8 @@
 		margin-right: 0;
 	}
 	/* Make sure the logo and search form don't collide */
-	#branding #searchform {
+	#branding #searchform,
+        #branding .searchform {
 		top: 1.625em !important;
 	}
 	/* Floated content doesn't work well at this size */
@@ -2513,7 +2534,8 @@
 	#site-description {
 		font-size: 10pt;
 	}
-	#branding #searchform {
+	#branding #searchform,
+        #branding .searchform {
 		display: none;
 	}
 	#branding img {
Index: wp-content/themes/twentyeleven/rtl.css
===================================================================
--- wp-content/themes/twentyeleven/rtl.css	(revision 18664)
+++ wp-content/themes/twentyeleven/rtl.css	(working copy)
@@ -52,7 +52,8 @@
 	margin-right: 102px;
 }
 /* Make sure the logo and search form don't collide */
-.one-column #branding #searchform {
+.one-column #branding form#searchform,
+.one-column #branding form.searchform {
 	right: auto;
 	left: 40px;
 }
@@ -99,7 +100,8 @@
 	padding-left: 0;
 	padding-right: 3px;
 }
-input#s {
+input#s,
+input.searchinput {
 	background-position: 97% 6px;
 	padding: 4px 28px 4px 10px;
 }
@@ -147,12 +149,14 @@
 }
 
 /* Search Form */
-#branding #searchform {
+#branding form#searchform,
+#branding form.searchform {
 	right: auto;
 	left: 7.6%;
 	text-align: left;
 }
-#branding #s {
+#branding #s,
+#branding .searchinput {
 	float: left;
 }
 #branding .only-search + #access div {
Index: wp-content/themes/twentyeleven/colors/dark.css
===================================================================
--- wp-content/themes/twentyeleven/colors/dark.css	(revision 18664)
+++ wp-content/themes/twentyeleven/colors/dark.css	(working copy)
@@ -42,7 +42,8 @@
 input[type=text]:focus,
 textarea:focus {
 }
-input#s {
+input#s,
+input.searchinput {
 	background-color: #ddd;
 }
 
@@ -67,7 +68,8 @@
 #site-description {
 	color: #858585;
 }
-#branding #s {
+#branding input#s,
+#branding input.searchinput {
 	background-color: #ddd;
 }
 
@@ -253,7 +255,8 @@
 
 /* =error404
 ----------------------------------------------- */
-.error404 #main #searchform {
+.error404 #main #searchform,
+.error404 #main .searchform {
 	background: #060606;
 	border-color: #222;
 }
@@ -406,7 +409,8 @@
 }
 
 /* Search Widget */
-.widget_search #searchsubmit {
+.widget_search #searchsubmit,
+.widget_search .searchsubmit {
 	background: #222;
 	border-color: #333;
 	-webkit-box-shadow: inset 0px -1px 1px rgba(0, 0, 0, 0.09);
@@ -414,7 +418,8 @@
 	box-shadow: inset 0px -1px 1px rgba(0, 0, 0, 0.09);
 	color: #777;
 }
-.widget_search #searchsubmit:active {
+.widget_search #searchsubmit:active,
+.widget_search .searchsubmit:active {
 	-webkit-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.1);
 	-moz-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.1);
 	box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.1);
