Index: wp-includes/default-widgets.php
===================================================================
--- wp-includes/default-widgets.php	(revision 11691)
+++ wp-includes/default-widgets.php	(working copy)
@@ -605,14 +605,16 @@
 		$this->WP_Widget('recent-comments', __('Recent Comments'), $widget_ops);
 		$this->alt_option_name = 'widget_recent_comments';
 
-		if ( is_active_widget(false, false, $this->id_base) )
-			add_action( 'wp_head', array(&$this, 'recent_comments_style') );
+		add_action( 'wp_head', array(&$this, 'recent_comments_style') );
 
 		add_action( 'comment_post', array(&$this, 'flush_widget_cache') );
 		add_action( 'wp_set_comment_status', array(&$this, 'flush_widget_cache') );
 	}
 
-	function recent_comments_style() { ?>
+	function recent_comments_style() {
+		if ( !is_active_widget(false, false, $this->id_base) )
+			return;
+	?>
 	<style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style>
 <?php
 	}
Index: wp-includes/widgets.php
===================================================================
--- wp-includes/widgets.php	(revision 11691)
+++ wp-includes/widgets.php	(working copy)
@@ -885,7 +885,7 @@
 function is_active_widget($callback = false, $widget_id = false, $id_base = false, $skip_inactive = true) {
 	global $wp_registered_widgets;
 
-	$sidebars_widgets = wp_get_sidebars_widgets();
+	$sidebars_widgets = wp_get_sidebars_widgets(false);
 
 	if ( is_array($sidebars_widgets) ) {
 		foreach ( $sidebars_widgets as $sidebar => $widgets ) {
@@ -935,7 +935,7 @@
  */
 function is_active_sidebar( $index ) {
 	$index = ( is_int($index) ) ? "sidebar-$index" : sanitize_title($index);
-	$sidebars_widgets = wp_get_sidebars_widgets();
+	$sidebars_widgets = wp_get_sidebars_widgets(false);
 	if ( isset($sidebars_widgets[$index]) && !empty($sidebars_widgets[$index]) )
 		return true;
 
@@ -953,95 +953,100 @@
  * @since 2.2.0
  * @access private
  *
- * @param bool $update Optional, deprecated.
- * @return array Upgraded list of widgets to version 3 array format when called from the admin.
+ * @param bool $update Optional, default is true. Whether to save upgrade of widget array list.
+ * @return array Upgraded list of widgets to version 2 array format.
  */
-function wp_get_sidebars_widgets($deprecated = true) {
+function wp_get_sidebars_widgets($update = true) {
 	global $wp_registered_widgets, $wp_registered_sidebars, $_wp_sidebars_widgets;
 
 	// If loading from front page, consult $_wp_sidebars_widgets rather than options
 	// to see if wp_convert_widget_settings() has made manipulations in memory.
-	if ( !is_admin() ) {
+	if ( is_admin() ) {
+		$sidebars_widgets = get_option('sidebars_widgets', array('array_version' => 3));
+	} else {
 		if ( empty($_wp_sidebars_widgets) )
-			$_wp_sidebars_widgets = get_option('sidebars_widgets', array());
+			$_wp_sidebars_widgets = get_option('sidebars_widgets', array('array_version' => 3));
 
 		$sidebars_widgets = $_wp_sidebars_widgets;
-	} else {
-		$sidebars_widgets = get_option('sidebars_widgets', array());
-		$_sidebars_widgets = array();
+	}
+	$_sidebars_widgets = array();
 
-		if ( isset($sidebars_widgets['wp_inactive_widgets']) )
-			$sidebars_widgets['array_version'] = 3;
-		elseif ( !isset($sidebars_widgets['array_version']) )
-			$sidebars_widgets['array_version'] = 1;
+	if ( !isset($sidebars_widgets['array_version']) )
+		$sidebars_widgets['array_version'] = 1;
 
-		switch ( $sidebars_widgets['array_version'] ) {
-			case 1 :
-				foreach ( (array) $sidebars_widgets as $index => $sidebar )
-				if ( is_array($sidebar) )
-				foreach ( (array) $sidebar as $i => $name ) {
-					$id = strtolower($name);
-					if ( isset($wp_registered_widgets[$id]) ) {
-						$_sidebars_widgets[$index][$i] = $id;
-						continue;
-					}
-					$id = sanitize_title($name);
-					if ( isset($wp_registered_widgets[$id]) ) {
-						$_sidebars_widgets[$index][$i] = $id;
-						continue;
-					}
+	switch ( $sidebars_widgets['array_version'] ) {
+		case 1 :
+			foreach ( (array) $sidebars_widgets as $index => $sidebar )
+			if ( is_array($sidebar) )
+			foreach ( (array) $sidebar as $i => $name ) {
+				$id = strtolower($name);
+				if ( isset($wp_registered_widgets[$id]) ) {
+					$_sidebars_widgets[$index][$i] = $id;
+					continue;
+				}
+				$id = sanitize_title($name);
+				if ( isset($wp_registered_widgets[$id]) ) {
+					$_sidebars_widgets[$index][$i] = $id;
+					continue;
+				}
 
-					$found = false;
+				$found = false;
 
-					foreach ( $wp_registered_widgets as $widget_id => $widget ) {
-						if ( strtolower($widget['name']) == strtolower($name) ) {
-							$_sidebars_widgets[$index][$i] = $widget['id'];
-							$found = true;
-							break;
-						} elseif ( sanitize_title($widget['name']) == sanitize_title($name) ) {
-							$_sidebars_widgets[$index][$i] = $widget['id'];
-							$found = true;
-							break;
-						}
+				foreach ( $wp_registered_widgets as $widget_id => $widget ) {
+					if ( strtolower($widget['name']) == strtolower($name) ) {
+						$_sidebars_widgets[$index][$i] = $widget['id'];
+						$found = true;
+						break;
+					} elseif ( sanitize_title($widget['name']) == sanitize_title($name) ) {
+						$_sidebars_widgets[$index][$i] = $widget['id'];
+						$found = true;
+						break;
 					}
+				}
 
-					if ( $found )
-						continue;
+				if ( $found )
+					continue;
 
-					unset($_sidebars_widgets[$index][$i]);
+				unset($_sidebars_widgets[$index][$i]);
+			}
+			$_sidebars_widgets['array_version'] = 2;
+			$sidebars_widgets = $_sidebars_widgets;
+			unset($_sidebars_widgets);
+
+		case 2 :
+			$sidebars = array_keys( $wp_registered_sidebars );
+			if ( !empty( $sidebars ) ) {
+				// Move the known-good ones first
+				foreach ( (array) $sidebars as $id ) {
+					if ( array_key_exists( $id, $sidebars_widgets ) ) {
+						$_sidebars_widgets[$id] = $sidebars_widgets[$id];
+						unset($sidebars_widgets[$id], $sidebars[$id]);
+					}
 				}
-				$_sidebars_widgets['array_version'] = 2;
-				$sidebars_widgets = $_sidebars_widgets;
-				unset($_sidebars_widgets);
 
-			case 2 :
-				$sidebars = array_keys( $wp_registered_sidebars );
-				if ( !empty( $sidebars ) ) {
-					// Move the known-good ones first
-					foreach ( (array) $sidebars as $id ) {
-						if ( array_key_exists( $id, $sidebars_widgets ) ) {
-							$_sidebars_widgets[$id] = $sidebars_widgets[$id];
-							unset($sidebars_widgets[$id], $sidebars[$id]);
-						}
+				// move the rest to wp_inactive_widgets
+				if ( !isset($_sidebars_widgets['wp_inactive_widgets']) )
+					$_sidebars_widgets['wp_inactive_widgets'] = array();
+				
+				if ( !empty($sidebars_widgets) ) {
+					foreach ( $sidebars_widgets as $lost => $val ) {
+						if ( is_array($val) )
+							$_sidebars_widgets['wp_inactive_widgets'] = array_merge( (array) $_sidebars_widgets['wp_inactive_widgets'], $val );
 					}
+				}
 
-					// move the rest to wp_inactive_widgets
-					if ( !isset($_sidebars_widgets['wp_inactive_widgets']) )
-						$_sidebars_widgets['wp_inactive_widgets'] = array();
+				$sidebars_widgets = $_sidebars_widgets;
+				unset($_sidebars_widgets);
+			}
 
-					if ( !empty($sidebars_widgets) ) {
-						foreach ( $sidebars_widgets as $lost => $val ) {
-							if ( is_array($val) )
-								$_sidebars_widgets['wp_inactive_widgets'] = array_merge( (array) $_sidebars_widgets['wp_inactive_widgets'], $val );
-						}
-					}
-
-					$sidebars_widgets = $_sidebars_widgets;
-					unset($_sidebars_widgets);
-				}
-		}
+			$sidebars_widgets['array_version'] = 3;
+			if ( $update && is_admin() )
+				update_option('sidebars_widgets', $sidebars_widgets);
 	}
 
+	if ( !is_admin() )
+		$_wp_sidebars_widgets = $sidebars_widgets;
+	
 	if ( isset($sidebars_widgets['array_version']) )
 		unset($sidebars_widgets['array_version']);
 
@@ -1110,27 +1115,29 @@
 
 		// If loading from the front page, update sidebar in memory but don't save to options
 		if ( is_admin() ) {
-			$sidebars_widgets = get_option('sidebars_widgets');
+			$sidebars_widgets = get_option('sidebars_widgets', array('array_version' => 3));
 		} else {
 			if ( empty($GLOBALS['_wp_sidebars_widgets']) )
-				$GLOBALS['_wp_sidebars_widgets'] = get_option('sidebars_widgets', array());
+				$GLOBALS['_wp_sidebars_widgets'] = get_option('sidebars_widgets', array('array_version' => 3));
 			$sidebars_widgets = &$GLOBALS['_wp_sidebars_widgets'];
 		}
-
-		foreach ( (array) $sidebars_widgets as $index => $sidebar ) {
-			if ( is_array($sidebar) ) {
-				foreach ( $sidebar as $i => $name ) {
-					if ( $base_name == $name ) {
-						$sidebars_widgets[$index][$i] = "$name-2";
-						$changed = true;
-						break 2;
+		
+		if ( isset($sidebars_widgets['array_version']) && $sidebars_widgets['array_version'] == 3 ) {
+			foreach ( (array) $sidebars_widgets as $index => $sidebar ) {
+				if ( is_array($sidebar) ) {
+					foreach ( $sidebar as $i => $name ) {
+						if ( $base_name == $name ) {
+							$sidebars_widgets[$index][$i] = "$name-2";
+							$changed = true;
+							break 2;
+						}
 					}
 				}
 			}
+			
+			if ( is_admin() && $changed )
+				update_option('sidebars_widgets', $sidebars_widgets);
 		}
-
-		if ( is_admin() && $changed )
-			update_option('sidebars_widgets', $sidebars_widgets);
 	}
 
 	$settings['_multiwidget'] = 1;
