Index: src/wp-admin/options-discussion.php
===================================================================
--- src/wp-admin/options-discussion.php	(revision 27366)
+++ src/wp-admin/options-discussion.php	(working copy)
@@ -50,7 +50,7 @@
 <br />
 <label for="default_comment_status">
 <input name="default_comment_status" type="checkbox" id="default_comment_status" value="open" <?php checked('open', get_option('default_comment_status')); ?> />
-<?php _e('Allow people to post comments on new articles'); ?></label>
+<?php _e('Allow people to post comments on articles'); ?></label>
 <br />
 <p class="description"><?php echo '(' . __( 'These settings may be overridden for individual articles.' ) . ')'; ?></p>
 </fieldset></td>
Index: src/wp-includes/comment.php
===================================================================
--- src/wp-includes/comment.php	(revision 27366)
+++ src/wp-includes/comment.php	(working copy)
@@ -2395,27 +2395,33 @@
  * @return object
  */
 function _close_comments_for_old_posts( $posts, $query ) {
-	if ( empty( $posts ) || ! $query->is_singular() || ! get_option( 'close_comments_for_old_posts' ) )
+	if ( empty( $posts ) || ! $query->is_singular() )
 		return $posts;
 
-	/**
-	 * Filter the list of post types to automatically close comments for.
-	 *
-	 * @since 3.2.0
-	 *
-	 * @param array $post_types An array of registered post types. Default array with 'post'.
-	 */
-	$post_types = apply_filters( 'close_comments_for_post_types', array( 'post' ) );
-	if ( ! in_array( $posts[0]->post_type, $post_types ) )
-		return $posts;
+	if ( 'closed' == get_option( 'default_comment_status' ) ) {
+		$posts[0]->comment_status = 'closed';
+		$posts[0]->ping_status    = 'closed';
+	}
+	elseif ( get_option( 'close_comments_for_old_posts' ) ) {
+		/**
+		 * Filter the list of post types to automatically close comments for.
+		 *
+		 * @since 3.2.0
+		 *
+		 * @param array $post_types An array of registered post types. Default array with 'post'.
+		 */
+		$post_types = apply_filters( 'close_comments_for_post_types', array( 'post' ) );
+		if ( ! in_array( $posts[0]->post_type, $post_types ) )
+			return $posts;
 
-	$days_old = (int) get_option( 'close_comments_days_old' );
-	if ( ! $days_old )
-		return $posts;
+		$days_old = (int) get_option( 'close_comments_days_old' );
+		if ( ! $days_old )
+			return $posts;
 
-	if ( time() - strtotime( $posts[0]->post_date_gmt ) > ( $days_old * DAY_IN_SECONDS ) ) {
-		$posts[0]->comment_status = 'closed';
-		$posts[0]->ping_status = 'closed';
+		if ( time() - strtotime( $posts[0]->post_date_gmt ) > ( $days_old * DAY_IN_SECONDS ) ) {
+			$posts[0]->comment_status = 'closed';
+			$posts[0]->ping_status    = 'closed';
+		}
 	}
 
 	return $posts;
@@ -2432,6 +2438,10 @@
  * @return bool $open
  */
 function _close_comments_for_old_post( $open, $post_id ) {
+	if ( 'closed' == get_option( 'default_comment_status' ) ) {
+		return false;
+	}
+
 	if ( ! $open )
 		return $open;
 
