diff --git wp-admin/edit-comments.php wp-admin/edit-comments.php
index f5448ab..8b5fbaa 100644
--- wp-admin/edit-comments.php
+++ wp-admin/edit-comments.php
@@ -8,7 +8,7 @@
 
 /** WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
-if ( ! current_user_can( 'edit_posts' ) ) {
+if ( ! current_user_can( 'edit_posts' ) && ! current_user_can( 'edit_comments' ) && ! current_user_can( 'moderate_comments' ) ) {
 	wp_die(
 		'<h1>' . __( 'Cheatin&#8217; uh?' ) . '</h1>' .
 		'<p>' . __( 'You are not allowed to edit comments.' ) . '</p>',
diff --git wp-admin/menu.php wp-admin/menu.php
index f85ebd3..e69e5a9 100644
--- wp-admin/menu.php
+++ wp-admin/menu.php
@@ -67,23 +67,35 @@ $menu[15] = array( __('Links'), 'manage_links', 'link-manager.php', '', 'menu-to
 
 // $menu[20] = Pages
 
-// Avoid the comment count query for users who cannot edit_posts.
-if ( current_user_can( 'edit_posts' ) ) {
+// Avoid the comment count query for users who cannot moderate_comments.
+if ( current_user_can( 'moderate_comments' ) ) {
 	$awaiting_mod = wp_count_comments();
 	$awaiting_mod = $awaiting_mod->moderated;
-	$menu[25] = array(
-		sprintf( __( 'Comments %s' ), '<span class="awaiting-mod count-' . absint( $awaiting_mod ) . '"><span class="pending-count">' . number_format_i18n( $awaiting_mod ) . '</span></span>' ),
-		'edit_posts',
-		'edit-comments.php',
-		'',
-		'menu-top menu-icon-comments',
-		'menu-comments',
-		'dashicons-admin-comments',
-	);
-	unset( $awaiting_mod );
+	$label = sprintf( __( 'Comments %s' ), '<span class="awaiting-mod count-' . absint( $awaiting_mod ) . '"><span class="pending-count">' . number_format_i18n( $awaiting_mod ) . '</span></span>' );
+} else {
+	$label = __( 'Comments' );
+}
+
+if ( current_user_can( 'moderate_comments' ) ) {
+	$cap = 'moderate_comments';
+} elseif ( current_user_can( 'edit_comments' ) ) {
+	$cap = 'edit_comments';
+} else {
+	$cap = 'edit_posts';
 }
 
-$submenu[ 'edit-comments.php' ][0] = array( __('All Comments'), 'edit_posts', 'edit-comments.php' );
+$menu[25] = array(
+	$label,
+	$cap,
+	'edit-comments.php',
+	'',
+	'menu-top menu-icon-comments',
+	'menu-comments',
+	'dashicons-admin-comments',
+);
+	$submenu[ 'edit-comments.php' ][0] = array( __('All Comments'), $cap, 'edit-comments.php' );
+unset( $awaiting_mod, $label, $cap );
+
 
 $_wp_last_object_menu = 25; // The index of the last top-level menu in the object menu group
 
