diff --git a/web/lib/forum.ssjs b/web/lib/forum.ssjs
index da43fbbae8b0fa47d73020aa8c9699c5e17def72..54ce4a40551a0914ad6ec057d27cf17689cf1554 100644
--- a/web/lib/forum.ssjs
+++ b/web/lib/forum.ssjs
@@ -150,6 +150,11 @@ var printThread = function(sub, t) {
 		return false;
 	}
 	var threads = getMessageThreads(sub, webIni.maxMessages);
+	if(typeof threads.thread[t] == "undefined") {
+		msgBase.close();
+		print("Thread does not exist.");
+		return true;
+	}
 	for(var m in threads.thread[t].messages) {
 		var header = threads.thread[t].messages[m];
 		var body = msgBase.get_msg_body(header.number, strip_ctrl_a=true);
@@ -271,6 +276,21 @@ var postMessage = function(sub, irt, to, from, subject, body) {
 }
 
 var deleteMessage = function(sub, message) {
-	print("Would delete " + sub + ", " + message);
+	try {
+		var msgBase = new MsgBase(sub);
+		msgBase.open();
+	} catch(err) {
+		log(LOG_ERR, err);
+		return false;
+	}
+	if(sub != "mail" && !user.compare_ars(msgBase.cfg.operator_ars))
+		return false;
+	var message = parseInt(message);
+	var header = msgBase.get_msg_header(message);
+	if(sub == "mail" && header.to != user.alias && header.to != user.name && header.to_ext != user.number)
+		return false;
+	header.attr|=MSG_DELETE;
+	msgBase.put_msg_header(message, header);
+	print("Message deleted.");
 	return true;
 }
\ No newline at end of file