diff --git a/exec/gopherservice.js b/exec/gopherservice.js
index 84e3564d344da5c17d441bdf48b2d3b0de48a5f5..cb6ccc6587e9e6059f968760b8cb22b1bc05ed8a 100644
--- a/exec/gopherservice.js
+++ b/exec/gopherservice.js
@@ -219,6 +219,10 @@ switch(field[0]) {
 			}
 		break;
 	case "sub":
+		if(!msg_area.sub[field[1]]) {
+			writeln(log(LOG_NOTICE, "Invalid message area: " + field[1]));
+			break;
+		}
 		msgbase = new MsgBase(field[1]);
 		if(msgbase.open!=undefined && msgbase.open()==false) {
 			writeln("!ERROR " + msgbase.last_error);