Index: wp-includes/widgets.php
===================================================================
--- wp-includes/widgets.php	(revision 11673)
+++ wp-includes/widgets.php	(working copy)
@@ -967,7 +967,7 @@
 		if ( empty($_wp_sidebars_widgets) )
 			$sidebars_widgets = get_option('sidebars_widgets', array());
 		else
-			$sidebars_widgets = &$_wp_sidebars_widgets;
+			return $_wp_sidebars_widgets;
 	}
 	$_sidebars_widgets = array();
 
@@ -1086,9 +1086,8 @@
  * @return array
  */
 function wp_convert_widget_settings($base_name, $option_name, $settings) {
-	global $_wp_sidebars_widgets;
 	// This test may need expanding.
-	$single = false;
+	$single = $changed = false;
 	if ( empty($settings) ) {
 		$single = true;
 	} else {
@@ -1107,10 +1106,10 @@
 
 		// 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 = wp_get_sidebars_widgets();
 		} else {
 			if ( empty($GLOBALS['_wp_sidebars_widgets']) )
-				$GLOBALS['_wp_sidebars_widgets'] = get_option('sidebars_widgets');
+				$GLOBALS['_wp_sidebars_widgets'] = wp_get_sidebars_widgets(false);
 			$sidebars_widgets = &$GLOBALS['_wp_sidebars_widgets'];
 		}
 
@@ -1119,14 +1118,18 @@
 				foreach ( $sidebar as $i => $name ) {
 					if ( $base_name == $name ) {
 						$sidebars_widgets[$index][$i] = "$name-2";
+						$changed = true;
 						break 2;
 					}
 				}
 			}
 		}
 
-		if ( is_admin() )
-			update_option('sidebars_widgets', $sidebars_widgets);
+		if ( is_admin() && $changed ) {
+			$order = $sidebars_widgets;
+			$order['array_version'] = 3;
+			update_option('sidebars_widgets', $order);
+		}
 	}
 
 	$settings['_multiwidget'] = 1;
