diff --git a/exec/nntpservice.js b/exec/nntpservice.js
index b9ffba4e91e0c1048aec8ae0510ff37536f6a7eb..80d2626a546361c4aa299f821d299d8a3140877d 100644
--- a/exec/nntpservice.js
+++ b/exec/nntpservice.js
@@ -400,6 +400,10 @@ while(client.socket.is_connected && !quit) {
 				writeln("412 no newsgroup selected");
 				break;
 			}
+			if(!selected.can_read) {
+				writeln("412 read permission to newsgroup denied");
+				break;
+			}
 			var first, last;
 			if(cmd[1]==undefined || cmd[1].length==0)
 				first=last=current_article;
@@ -441,6 +445,10 @@ while(client.socket.is_connected && !quit) {
 				writeln("412 no newsgroup selected");
 				break;
 			}
+			if(!selected.can_read) {
+				writeln("412 read permission to newsgroup denied");
+				break;
+			}
 			writeln("221 Header follows");
 			var first, last;
 			if(cmd[2].indexOf('-')>=0)	{ /* range */
@@ -518,6 +526,10 @@ while(client.socket.is_connected && !quit) {
 				bogus_cmd_counter++;
 				break;
 			}
+			if(!selected.can_read) {
+				writeln("412 read permission to newsgroup denied");
+				break;
+			}
 			if(cmd[1]==undefined || cmd[1].length==0) {
 				writeln("420 no current article has been selected");
 				bogus_cmd_counter++;