Index: src/wp-admin/includes/screen.php
===================================================================
--- src/wp-admin/includes/screen.php	(revision 36075)
+++ src/wp-admin/includes/screen.php	(working copy)
@@ -57,7 +57,9 @@
 
 	$hidden = get_user_option( 'manage' . $screen->id . 'columnshidden' );
 
-	if ( ! $hidden ) {
+	$use_defaults = ! is_array( $hidden );
+
+	if ( $use_defaults ) {
 		$hidden = array();
 
 		/**
@@ -78,8 +80,10 @@
 	 *
 	 * @param array     $hidden An array of hidden columns.
 	 * @param WP_Screen $screen WP_Screen object of the current screen.
+	 * @param bool      $use_defaults Whether to show the default meta boxes.
+	 *                                Default true.
 	 */
-	return apply_filters( 'hidden_columns', $hidden, $screen );
+	return apply_filters( 'hidden_columns', $hidden, $screen, $use_defaults );
 }
 
 /**
@@ -131,10 +135,11 @@
  * @return array Hidden Meta Boxes
  */
 function get_hidden_meta_boxes( $screen ) {
-	if ( is_string( $screen ) )
+	if ( is_string( $screen ) ) {
 		$screen = convert_to_screen( $screen );
+	}
 
-	$hidden = get_user_option( "metaboxhidden_{$screen->id}" );
+	$hidden = get_user_option( 'metaboxhidden_' . $screen->id );
 
 	$use_defaults = ! is_array( $hidden );
 
@@ -142,10 +147,11 @@
 	if ( $use_defaults ) {
 		$hidden = array();
 		if ( 'post' == $screen->base ) {
-			if ( 'post' == $screen->post_type || 'page' == $screen->post_type || 'attachment' == $screen->post_type )
+			if ( 'post' == $screen->post_type || 'page' == $screen->post_type || 'attachment' == $screen->post_type ) {
 				$hidden = array('slugdiv', 'trackbacksdiv', 'postcustom', 'postexcerpt', 'commentstatusdiv', 'commentsdiv', 'authordiv', 'revisionsdiv');
-			else
+			} else {
 				$hidden = array( 'slugdiv' );
+			}
 		}
 
 		/**
