Index: wp-includes/script-loader.php
===================================================================
--- wp-includes/script-loader.php	(revision 7152)
+++ wp-includes/script-loader.php	(working copy)
@@ -130,7 +130,10 @@
 				'good' => __('Good'),
 				'strong' => __('Strong')
 			) );
-			$this->add( 'admin-comments', '/wp-admin/js/edit-comments.js', array('wp-lists'), '20080228' );
+			$this->add( 'admin-comments', '/wp-admin/js/edit-comments.js', array('wp-lists'), '20080304' );
+			$this->localize( 'admin-comments', 'adminCommentsL10n', array(
+				'pending' => __('%i% pending') // must look like: "# blah blah"
+			) );
 			$this->add( 'admin-users', '/wp-admin/js/users.js', array('wp-lists'), '20070823' );
 			$this->add( 'admin-forms', '/wp-admin/js/forms.js', false, '20080108' );
 			$this->add( 'xfn', '/wp-admin/js/xfn.js', false, '3517' );
Index: wp-admin/js/edit-comments.js
===================================================================
--- wp-admin/js/edit-comments.js	(revision 7152)
+++ wp-admin/js/edit-comments.js	(working copy)
@@ -7,22 +7,47 @@
 		var n = parseInt(a.html(),10) + ( $('#' + settings.element).is('.' + settings.dimClass) ? 1 : -1 );
 		a.html( n.toString() );
 	});
-	// we need to do the opposite for this guy, TODO: update title
 	$('.post-com-count span.comment-count').each( function() {
 		var a = $(this);
-		var n = parseInt(a.html(),10) + ( $('#' + settings.element).is('.' + settings.dimClass) ? -1 : 1 );
+		var n = parseInt(a.html(),10);
+		var t = parseInt(a.parent().attr('title'), 10);
+		if ( $('#' + settings.element).is('.unapproved') ) { // we unapproved a formerly approved comment
+			n = n - 1;
+			t = t + 1;
+		} else { // we approved a formerly unapproved comment
+			n = n + 1;
+			t = t - 1;
+		}
+		if ( t >= 0 ) { a.parent().attr('title', adminCommentsL10n.pending.replace( /%i%/, t.toString() ) ); }
+		if ( 0 === t ) { a.parents('strong:first').replaceWith( a.parents('strong:first').html() ); }
 		a.html( n.toString() );
 	});
 }
 
 var delAfter = function( r, settings ) {
-	$('span.comment-count').each( function() {
+	$('li span.comment-count').each( function() {
 		var a = $(this);
-		if ( a.parent('.current').size() || $('#' + settings.element).is('.unapproved') && parseInt(a.html(),10) > 0 ) {
+		if ( parseInt(a.html(),10) < 1 ) { return; }
+		// on ?edit-comments.php?comment_status=moderated tab
+		// or the comment is unapproved
+		if ( a.parent('.current').size() || $('#' + settings.element).is('.unapproved') ) {
 			var n = parseInt(a.html(),10) - 1;
 			a.html( n.toString() );
 		}
 	});
+	$('.post-com-count span.comment-count').each( function() {
+		var a = $(this);
+		if ( $('#' + settings.element).is('.unapproved') ) { // we deleted an unapproved comment, decrement pending title
+			var t = parseInt(a.parent().attr('title'), 10);
+			if ( t < 1 ) { return; }
+			t = t - 1;
+			a.parent().attr('title', adminCommentsL10n.pending.replace( /%i%/, t.toString() ) );
+			if ( 0 === t ) { a.parents('strong:first').replaceWith( a.parents('strong:first').html() ); }
+			return;
+		}
+		var n = parseInt(a.html(),10) - 1;
+		a.html( n.toString() );
+	});
 
 	if ( theExtraList.size() == 0 || theExtraList.children().size() == 0 ) {
 		return;
