Index: wp-includes/ms-functions.php
===================================================================
--- wp-includes/ms-functions.php	(revision 20951)
+++ wp-includes/ms-functions.php	(working copy)
@@ -979,14 +979,18 @@
 
 	add_user_to_blog($blog_id, $user_id, 'administrator');
 
-	if ( is_array($meta) ) foreach ($meta as $key => $value) {
-		if ( $key == 'public' || $key == 'archived' || $key == 'mature' || $key == 'spam' || $key == 'deleted' || $key == 'lang_id' )
-			update_blog_status( $blog_id, $key, $value );
-		else
-			update_option( $key, $value );
+	if ( is_array($meta) ) {
+		foreach ($meta as $key => $value) {
+			if ( $key == 'public' || $key == 'archived' || $key == 'mature' || $key == 'spam' || $key == 'deleted' || $key == 'lang_id' )
+				update_blog_status( $blog_id, $key, $value );
+			else
+				update_option( $key, $value );
+		}
 	}
 
 	add_option( 'WPLANG', get_site_option( 'WPLANG' ) );
+
+	$meta['public'] = isset( $meta['public'] ) ? $meta['public'] : 0;
 	update_option( 'blog_public', (int)$meta['public'] );
 
 	if ( ! is_super_admin( $user_id ) && ! get_user_meta( $user_id, 'primary_blog', true ) )
