Index: src/wp-includes/canonical.php
===================================================================
--- src/wp-includes/canonical.php	(revision 35029)
+++ src/wp-includes/canonical.php	(working copy)
@@ -319,8 +319,13 @@
 			}
 
 			if ( ( 'newest' == get_option('default_comments_page') && get_query_var('cpage') > 0 ) || ( 'newest' != get_option('default_comments_page') && get_query_var('cpage') > 1 ) ) {
-				$addl_path = ( !empty( $addl_path ) ? trailingslashit($addl_path) : '' ) . user_trailingslashit( $wp_rewrite->comments_pagination_base . '-' . get_query_var('cpage'), 'commentpaged' );
-				$redirect['query'] = remove_query_arg( 'cpage', $redirect['query'] );
+				if ( $wp_query->post ) {
+					$total_comment_pages = get_comment_pages_count( get_comments( 'post_id=' . $wp_query->post->ID ) );
+					if ( get_query_var('cpage') <= $total_comment_pages ) {
+						$addl_path = ( !empty( $addl_path ) ? trailingslashit($addl_path) : '' ) . user_trailingslashit( $wp_rewrite->comments_pagination_base . '-' . get_query_var('cpage'), 'commentpaged' );
+						$redirect['query'] = remove_query_arg( 'cpage', $redirect['query'] );
+					}
+				}
 			}
 
 			$redirect['path'] = user_trailingslashit( preg_replace('|/' . preg_quote( $wp_rewrite->index, '|' ) . '/?$|', '/', $redirect['path']) ); // strip off trailing /index.php/
Index: tests/phpunit/tests/canonical.php
===================================================================
--- tests/phpunit/tests/canonical.php	(revision 35029)
+++ tests/phpunit/tests/canonical.php	(working copy)
@@ -102,6 +102,7 @@
 
 			// Comments
 			array( '/2008/03/03/comment-test/?cpage=2', '/2008/03/03/comment-test/comment-page-2/' ),
+			array( '/2008/03/03/comment-test/comment-page-4/', '/2008/03/03/comment-test/' ),
 
 			// Attachments
 			array( '/?attachment_id=611', '/2008/06/10/post-format-test-gallery/canola2/' ),
