Index: wp-admin/includes/ms.php
===================================================================
--- wp-admin/includes/ms.php	(revision 19019)
+++ wp-admin/includes/ms.php	(working copy)
@@ -61,8 +61,6 @@
 		switch_to_blog( $blog_id );
 	}
 
-	$blog_prefix = $wpdb->get_blog_prefix( $blog_id );
-
 	do_action( 'delete_blog', $blog_id, $drop );
 
 	$users = get_users( array( 'blog_id' => $blog_id, 'fields' => 'ids' ) );
@@ -76,17 +74,17 @@
 
 	update_blog_status( $blog_id, 'deleted', 1 );
 
+	if ( 1 == $blog_id )
+		$drop = false;
+
 	if ( $drop ) {
-		if ( substr( $blog_prefix, -1 ) == '_' )
-			$blog_prefix =  substr( $blog_prefix, 0, -1 ) . '\_';
 
-		$drop_tables = $wpdb->get_results( "SHOW TABLES LIKE '{$blog_prefix}%'", ARRAY_A );
-		$drop_tables = apply_filters( 'wpmu_drop_tables', $drop_tables );
+		$drop_tables = apply_filters( 'wpmu_drop_tables', $wpdb->tables( 'blog' ) );
 
-		reset( $drop_tables );
-		foreach ( (array) $drop_tables as $drop_table) {
-			$wpdb->query( "DROP TABLE IF EXISTS ". current( $drop_table ) ."" );
+		foreach ( (array) $drop_tables as $table ) {
+			$wpdb->query( "DROP TABLE IF EXISTS `$table`" );
 		}
+
 		$wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->blogs WHERE blog_id = %d", $blog_id ) );
 		$dir = apply_filters( 'wpmu_delete_blog_upload_dir', WP_CONTENT_DIR . "/blogs.dir/{$blog_id}/files/", $blog_id );
 		$dir = rtrim( $dir, DIRECTORY_SEPARATOR );
@@ -120,16 +118,6 @@
 		}
 	}
 
-	$wpdb->query( "DELETE FROM {$wpdb->usermeta} WHERE meta_key = '{$blog_prefix}autosave_draft_ids'" );
-	$blogs = get_site_option( 'blog_list' );
-	if ( is_array( $blogs ) ) {
-		foreach ( $blogs as $n => $blog ) {
-			if ( $blog['blog_id'] == $blog_id )
-				unset( $blogs[$n] );
-		}
-		update_site_option( 'blog_list', $blogs );
-	}
-
 	if ( $switch === true )
 		restore_current_blog();
 }
