diff --git a/exec/load/msgutils.js b/exec/load/msgutils.js
index 9ee28e1025404f101db71b741487fa6bc5f93168..86d0408054801edb0ed5a56651779941682cc53b 100644
--- a/exec/load/msgutils.js
+++ b/exec/load/msgutils.js
@@ -360,7 +360,9 @@ function expand_body(body, sys_misc, mode)
 		}
 	}
 */
-function getMessageThreads(sub) {
+function getMessageThreads(sub, max) {
+	if(max === undefined)
+		max = 0;
 	var threads = { thread : {}, dates : [], order : [] };
 	var threadedMessages = [];
 	var subjects = {};
@@ -369,6 +371,7 @@ function getMessageThreads(sub) {
 	var md5subject;
 	var msgBase = new MsgBase(sub);
 	msgBase.open();
+	var n = 0;
 	for(var m = msgBase.first_msg; m <= msgBase.last_msg; m++) {
 		header = msgBase.get_msg_header(m);
 		if(
@@ -433,6 +436,9 @@ function getMessageThreads(sub) {
 		}
 		subjects[md5subject] = header.number;
 		threadedMessages.push(header.number);
+		n++;
+		if(max > 0 && n >= max)
+			break;
 	}
 	msgBase.close();