Index: wp-admin/includes/ms.php
===================================================================
--- wp-admin/includes/ms.php	(revision 13741)
+++ wp-admin/includes/ms.php	(working copy)
@@ -161,6 +161,8 @@
 	// allow for commit transaction
 	do_action('deleted_user', $id);
 
+	delete_site_transient( 'user_count' );
+
 	return true;
 }
 
@@ -498,6 +500,8 @@
 			do_action( "make_ham_user", $id );
 	}
 
+	delete_site_transient( 'user_count' );
+
 	return $value;
 }
 
Index: wp-includes/ms-blogs.php
===================================================================
--- wp-includes/ms-blogs.php	(revision 13741)
+++ wp-includes/ms-blogs.php	(working copy)
@@ -502,6 +502,8 @@
 			do_action( "make_ham_blog", $blog_id );
 	}
 
+	delete_site_transient( 'blog_count' );
+
 	return $value;
 }
 
Index: wp-includes/ms-functions.php
===================================================================
--- wp-includes/ms-functions.php	(revision 13741)
+++ wp-includes/ms-functions.php	(working copy)
@@ -9,16 +9,8 @@
 	global $wpdb;
 
 	$stats['blogs'] = get_blog_count();
+	$stats['users'] = get_user_count();
 
-	$count_ts = get_site_option( 'user_count_ts' );
-	if ( time() - $count_ts > 3600 ) {
-		$count = $wpdb->get_var( "SELECT COUNT(ID) FROM $wpdb->users" );
-		update_site_option( 'user_count', $count );
-		update_site_option( 'user_count_ts', time() );
-	} else {
-		$count = get_site_option( 'user_count' );
-	}
-	$stats['users'] = $count;
 	return $stats;
 }
 
@@ -202,15 +194,15 @@
 function get_user_count() {
 	global $wpdb;
 
-	$count_ts = get_site_option( "user_count_ts" );
-	if ( time() - $count_ts > 3600 ) {
-		$count = $wpdb->get_var( $wpdb->prepare("SELECT COUNT(ID) as c FROM $wpdb->users WHERE spam = '0' AND deleted = '0'") );
-		update_site_option( "user_count", $count );
-		update_site_option( "user_count_ts", time() );
-	}
+	$count = get_site_transient( 'user_count' );
 
-	$count = get_site_option( "user_count" );
+	if ( false !== $count ) 
+		return $count;
 
+	$count = $wpdb->get_var( "SELECT COUNT(ID) as c FROM $wpdb->users WHERE spam = '0' AND deleted = '0'" );
+
+	set_site_transient( 'user_count', $count );
+
 	return $count;
 }
 
@@ -220,15 +212,15 @@
 	if ( $id == 0 )
 		$id = $wpdb->siteid;
 
-	$count_ts = get_site_option( "blog_count_ts" );
-	if ( time() - $count_ts > 3600 ) {
-		$count = $wpdb->get_var( $wpdb->prepare("SELECT COUNT(blog_id) as c FROM $wpdb->blogs WHERE site_id = %d AND spam = '0' AND deleted = '0' and archived = '0'", $id) );
-		update_site_option( "blog_count", $count );
-		update_site_option( "blog_count_ts", time() );
-	}
+	$count = get_site_transient( 'user_count' );
 
-	$count = get_site_option( "blog_count" );
+	if ( false !== $count )
+		return $count;
 
+	$count = $wpdb->get_var( $wpdb->prepare("SELECT COUNT(blog_id) as c FROM $wpdb->blogs WHERE site_id = %d AND spam = '0' AND deleted = '0' AND archived = '0' AND mature = '0'", $id) );
+
+	set_site_transient( 'blog_count', $count );
+
 	return $count;
 }
 
@@ -836,7 +828,9 @@
 
 	restore_current_blog();
 	do_action( 'wpmu_new_blog', $blog_id, $user_id );
-
+	
+	delete_site_transient( 'user_count' );
+	
 	return $blog_id;
 }
 
