Index: wp-admin/options-general.php
===================================================================
--- wp-admin/options-general.php	(revision 12541)
+++ wp-admin/options-general.php	(working copy)
@@ -71,10 +71,6 @@
 <span class="description"><?php _e('In a few words, explain what this blog is about.') ?></span></td>
 </tr>
 <tr valign="top">
-<th scope="row"><label for="siteurl"><?php _e('WordPress address (URL)') ?></label></th>
-<td><input name="siteurl" type="text" id="siteurl" value="<?php form_option('siteurl'); ?>" class="regular-text code<?php if ( defined( 'WP_SITEURL' ) ) : ?> disabled" disabled="disabled"<?php else: ?>"<?php endif; ?> /></td>
-</tr>
-<tr valign="top">
 <th scope="row"><label for="home"><?php _e('Blog address (URL)') ?></label></th>
 <td><input name="home" type="text" id="home" value="<?php form_option('home'); ?>" class="regular-text code<?php if ( defined( 'WP_HOME' ) ) : ?> disabled" disabled="disabled"<?php else: ?>"<?php endif; ?> />
 <span class="description"><?php _e('Enter the address here if you want your blog homepage <a href="http://codex.wordpress.org/Giving_WordPress_Its_Own_Directory">to be different from the directory</a> you installed WordPress.'); ?></span></td>
Index: wp-admin/options.php
===================================================================
--- wp-admin/options.php	(revision 12541)
+++ wp-admin/options.php	(working copy)
@@ -30,7 +30,6 @@
 	'reading' => array( 'posts_per_page', 'posts_per_rss', 'rss_use_excerpt', 'blog_charset', 'show_on_front', 'page_on_front', 'page_for_posts' ),
 	'writing' => array( 'default_post_edit_rows', 'use_smilies', 'ping_sites', 'mailserver_url', 'mailserver_port', 'mailserver_login', 'mailserver_pass', 'default_category', 'default_email_category', 'use_balanceTags', 'default_link_category', 'enable_app', 'enable_xmlrpc' ),
 	'options' => array( '' ) );
-if ( !defined( 'WP_SITEURL' ) ) $whitelist_options['general'][] = 'siteurl';
 if ( !defined( 'WP_HOME' ) ) $whitelist_options['general'][] = 'home';
 
 $whitelist_options = apply_filters( 'whitelist_options', $whitelist_options );
@@ -71,6 +70,18 @@
 			$_POST['gmt_offset'] = preg_replace('/UTC\+?/', '', $_POST['gmt_offset']);
 			$_POST['timezone_string'] = '';
 		}
+
+		// Make 'www' preference consistent
+		$home = $_POST['home'];
+		$siteurl = get_option('siteurl');
+
+		$siteurl_www = ( FALSE !== strpos($siteurl, '://www.') );
+		$home_www = ( FALSE !== strpos($home, '://www.') );
+
+		if ( $home_www && !$siteurl_www )
+			update_option('siteurl', str_replace('://', '://www.', $siteurl));
+		elseif ( !$home_www && $siteurl_www )
+			update_option('siteurl', str_replace('://www.', '://', $siteurl));
 	}
 
 	if ( $options ) {
