Index: wp-admin/includes/post.php
===================================================================
--- wp-admin/includes/post.php	(revision 14446)
+++ wp-admin/includes/post.php	(working copy)
@@ -379,7 +379,11 @@
 		$post->post_status = 'draft';
 		$post->to_ping = '';
 		$post->pinged = '';
-		$post->comment_status = get_option( 'default_comment_status' );
+		if ( "page" == $post_type ) {
+			$post->comment_status = get_option( 'default_comment_status_pages' );
+		} else {
+			$post->comment_status = get_option( 'default_comment_status' );
+		}
 		$post->ping_status = get_option( 'default_ping_status' );
 		$post->post_pingback = get_option( 'default_pingback_flag' );
 		$post->post_category = get_option( 'default_category' );
Index: wp-admin/options-discussion.php
===================================================================
--- wp-admin/options-discussion.php	(revision 14446)
+++ wp-admin/options-discussion.php	(working copy)
@@ -42,6 +42,12 @@
 <?php _e('Allow people to post comments on new articles') ?></label>
 <br />
 <small><em><?php echo '(' . __('These settings may be overridden for individual articles.') . ')'; ?></em></small>
+<br />
+<label for="default_comment_status_pages">
+<input name="default_comment_status_pages" type="checkbox" id="default_comment_status_pages" value="open" <?php checked('open', get_option('default_comment_status_pages')); ?> />
+<?php _e('Allow people to post comments on new pages') ?></label>
+<br />
+<small><em><?php echo '(' . __('These settings may be overridden for individual pages.') . ')'; ?></em></small>
 </fieldset></td>
 </tr>
 <tr valign="top">
Index: wp-includes/post.php
===================================================================
--- wp-includes/post.php	(revision 14446)
+++ wp-includes/post.php	(working copy)
@@ -2159,7 +2159,11 @@
 		if ( $update )
 			$comment_status = 'closed';
 		else
-			$comment_status = get_option('default_comment_status');
+			if ( "page" == $post_type ) {
+				$comment_status = get_option( 'default_comment_status_pages' );
+			} else {
+				$comment_status = get_option( 'default_comment_status' );
+			}
 	}
 	if ( empty($ping_status) )
 		$ping_status = get_option('default_ping_status');
