Index: wp-includes/ms-functions.php
===================================================================
--- wp-includes/ms-functions.php	(revision 19126)
+++ wp-includes/ms-functions.php	(working copy)
@@ -991,7 +991,7 @@
 	add_option( 'WPLANG', get_site_option( 'WPLANG' ) );
 	update_option( 'blog_public', (int)$meta['public'] );
 
-	if ( !is_super_admin() && ! get_user_meta( $user_id, 'primary_blog', true ) )
+	if ( ! is_super_admin( $user_id ) && ! get_user_meta( $user_id, 'primary_blog', true ) )
 		update_user_meta( $user_id, 'primary_blog', $blog_id );
 
 	restore_current_blog();
Index: wp-admin/admin-ajax.php
===================================================================
--- wp-admin/admin-ajax.php	(revision 19126)
+++ wp-admin/admin-ajax.php	(working copy)
@@ -1067,10 +1067,7 @@
 	if ( ! current_user_can( 'edit_theme_options' ) )
 		die('-1');
 
-	if ( empty( $_POST['visible'] ) )
-		delete_user_option( get_current_user_id(), 'show_welcome_panel' );
-	else
-		update_user_option( get_current_user_id(), 'show_welcome_panel', 1 );
+	update_user_meta( get_current_user_id(), 'show_welcome_panel', empty( $_POST['visible'] ) ? 0 : 1 );
 
 	die('1');
 	break;
Index: wp-admin/includes/upgrade.php
===================================================================
--- wp-admin/includes/upgrade.php	(revision 19126)
+++ wp-admin/includes/upgrade.php	(working copy)
@@ -283,6 +283,9 @@
 	update_option( 'widget_meta', array ( 2 => array ( 'title' => '' ), '_multiwidget' => 1 ) );
 	update_option( 'sidebars_widgets', array ( 'wp_inactive_widgets' => array ( ), 'sidebar-1' => array ( 0 => 'search-2', 1 => 'recent-posts-2', 2 => 'recent-comments-2', 3 => 'archives-2', 4 => 'categories-2', 5 => 'meta-2', ), 'sidebar-2' => array ( ), 'sidebar-3' => array ( ), 'sidebar-4' => array ( ), 'sidebar-5' => array ( ), 'array_version' => 3 ) );
 
+	if ( ( ! is_multisite() || ! is_super_admin( $user_id ) ) && ! metadata_exists( 'user', $user_id, 'show_welcome_panel' ) )
+		update_user_meta( $user_id, 'show_welcome_panel', 1 );
+
 	if ( is_multisite() ) {
 		// Flush rules to pick up the new page.
 		$wp_rewrite->init();
