diff --git a/digest.js b/digest.js
index 3fe85f68ea4fa32338062302e2eab860d83eee8b..98ae14d8c1b16aa83fbdf5e6f685424cad511d53 100644
--- a/digest.js
+++ b/digest.js
@@ -47,9 +47,8 @@ function catchup_feed(feed_id, callback) {
 	}
 }
 
-function catchup_visible_articles(callback) {
+function get_visible_article_ids() {
 	try {
-
 		var elems = $("headlines-content").getElementsByTagName("LI");
 		var ids = [];
 			
@@ -59,6 +58,18 @@ function catchup_visible_articles(callback) {
 			}
 		}
 
+		return ids;
+
+	} catch (e) {
+		exception_error("get_visible_article_ids", e);
+	}
+}
+
+function catchup_visible_articles(callback) {
+	try {
+
+		var ids = get_visible_article_ids();
+
 		if (confirm(__("Mark %d displayed articles as read?").replace("%d", ids.length))) {
 
 			var query = "?op=rpc&subop=catchupSelected" +
@@ -565,19 +576,25 @@ function parse_headlines(transport, replace, no_effects) {
 				}
 			}
 
-			if (pr) {
-				$('headlines-content').appendChild(pr);
-				if (!no_effects) new Effect.ScrollTo(inserted);
-			} else {
-				$('headlines-content').innerHTML += "<li id='H-MORE-PROMPT'>" +
-					"<div class='body'>" +
-					"<a href=\"javascript:catchup_visible_articles()\">" +
-				  	__("Mark as read") + "</a> | " + 
-					"<a href=\"javascript:load_more()\">" +
-				  	__("Load more...") + "</a>" + 
-					"<img style=\"display : none\" "+
+			var ids = get_visible_article_ids();
+
+			if (ids.length > 0) {
+				if (pr) {
+					$('headlines-content').appendChild(pr);
+					if (!no_effects) new Effect.ScrollTo(inserted);
+				} else {
+					$('headlines-content').innerHTML += "<li id='H-MORE-PROMPT'>" +
+						"<div class='body'>" +
+						"<a href=\"javascript:catchup_visible_articles()\">" +
+					  	__("Mark as read") + "</a> | " + 
+						"<a href=\"javascript:load_more()\">" +
+					  	__("Load more...") + "</a>" + 
+						"<img style=\"display : none\" "+
 						"id=\"H-LOADING-IMG\" src='images/indicator_tiny.gif'>" +
-					"</div></li>";
+						"</div></li>";
+				}
+			} else {
+				// FIXME : display some kind of "nothing to see here" prompt here
 			}
 
 			if (replace && !no_effects)