diff --git src/wp-admin/includes/schema.php src/wp-admin/includes/schema.php
index 90ab600..14395de 100644
--- src/wp-admin/includes/schema.php
+++ src/wp-admin/includes/schema.php
@@ -382,6 +382,7 @@ function populate_options() {
 	'mailserver_pass' => 'password',
 	'mailserver_port' => 110,
 	'default_category' => 1,
+	'global_comment_status' => 'open',
 	'default_comment_status' => 'open',
 	'default_ping_status' => 'open',
 	'default_pingback_flag' => 1,
diff --git src/wp-admin/options-discussion.php src/wp-admin/options-discussion.php
index a02f997..e0f9c50 100644
--- src/wp-admin/options-discussion.php
+++ src/wp-admin/options-discussion.php
@@ -38,6 +38,16 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
 
 <table class="form-table">
 <tr>
+<th scope="row"><?php _e('Global comment settings'); ?></th>
+<td><fieldset><legend class="screen-reader-text"><span><?php _e('Global comment settings'); ?></span></legend>
+<label for="global_comment_status">
+<input name="global_comment_status" type="checkbox" id="global_comment_status" value="open" <?php checked('open', get_option('global_comment_status')); ?> />
+<?php _e('Allow people to post comments on articles'); ?></label>
+<p class="description"><?php echo '(' . __( 'Disabling this will override settings for all individual articles.' ) . ')'; ?></p>
+</fieldset>
+</td>
+</tr>
+<tr>
 <th scope="row"><?php _e('Default article settings'); ?></th>
 <td><fieldset><legend class="screen-reader-text"><span><?php _e('Default article settings'); ?></span></legend>
 <label for="default_pingback_flag">
diff --git src/wp-admin/options.php src/wp-admin/options.php
index 8b84811..e9a2219 100644
--- src/wp-admin/options.php
+++ src/wp-admin/options.php
@@ -71,7 +71,7 @@ if ( is_multisite() && !is_super_admin() && 'update' != $action )
 
 $whitelist_options = array(
 	'general' => array( 'blogname', 'blogdescription', 'gmt_offset', 'date_format', 'time_format', 'start_of_week', 'timezone_string' ),
-	'discussion' => array( 'default_pingback_flag', 'default_ping_status', 'default_comment_status', 'comments_notify', 'moderation_notify', 'comment_moderation', 'require_name_email', 'comment_whitelist', 'comment_max_links', 'moderation_keys', 'blacklist_keys', 'show_avatars', 'avatar_rating', 'avatar_default', 'close_comments_for_old_posts', 'close_comments_days_old', 'thread_comments', 'thread_comments_depth', 'page_comments', 'comments_per_page', 'default_comments_page', 'comment_order', 'comment_registration' ),
+	'discussion' => array( 'global_comment_status', 'default_pingback_flag', 'default_ping_status', 'default_comment_status', 'comments_notify', 'moderation_notify', 'comment_moderation', 'require_name_email', 'comment_whitelist', 'comment_max_links', 'moderation_keys', 'blacklist_keys', 'show_avatars', 'avatar_rating', 'avatar_default', 'close_comments_for_old_posts', 'close_comments_days_old', 'thread_comments', 'thread_comments_depth', 'page_comments', 'comments_per_page', 'default_comments_page', 'comment_order', 'comment_registration' ),
 	'media' => array( 'thumbnail_size_w', 'thumbnail_size_h', 'thumbnail_crop', 'medium_size_w', 'medium_size_h', 'large_size_w', 'large_size_h', 'image_default_size', 'image_default_align', 'image_default_link_type' ),
 	'reading' => array( 'posts_per_page', 'posts_per_rss', 'rss_use_excerpt', 'show_on_front', 'page_on_front', 'page_for_posts', 'blog_public' ),
 	'writing' => array( 'use_smilies', 'default_category', 'default_email_category', 'use_balanceTags', 'default_link_category', 'default_post_format' )
diff --git src/wp-includes/comment-template.php src/wp-includes/comment-template.php
index 3f773af..82ba8de 100644
--- src/wp-includes/comment-template.php
+++ src/wp-includes/comment-template.php
@@ -971,7 +971,7 @@ function comments_open( $post_id = null ) {
 
 	$_post = get_post($post_id);
 
-	$open = ( 'open' == $_post->comment_status );
+	$open = ( 'open' == $_post->comment_status && 'open' == get_option('global_comment_status') );
 
 	/**
 	 * Filter whether the current post is open for comments.
