diff --git a/exec/qotdservice.js b/exec/qotdservice.js
new file mode 100644
index 0000000000000000000000000000000000000000..861e9f9b6d66e654acc9585b9e5243fbcb216732
--- /dev/null
+++ b/exec/qotdservice.js
@@ -0,0 +1,59 @@
+// qotdservice.js
+
+// Synchronet Service for the Quote of The Day protocol (RFC 865)
+
+// $Id$
+
+
+const REVISION = "$Revision$".split(' ')[1];
+
+var output_buf = "";
+
+// Write a string to the client socket
+function write(str)
+{
+	output_buf += str;
+}
+
+// Write all the output at once
+function flush()
+{
+	client.socket.send(output_buf);
+}
+
+function done()
+{
+	flush();
+	exit();
+}
+
+automsg=new File(system.data_dir+"msgs/auto.msg");
+if(!automsg.open("r",true)) {
+	log("Error opening "+system.data_dir+"msgs/auto.msg for read");
+	write("No AutoMessage set\r\n");
+	done();
+}
+
+while(1) {
+	if(!client.socket.is_connected)
+		done();
+	b=automsg.readBin(1);
+	if(automsg.eof)
+		done();
+	if(b==1) {	// CTRL-A... eat it
+		b=automsg.readBin(1);
+		if(b!=1)
+			continue;
+	}
+	if(b < 32) {
+		switch(b) {
+			case 9:
+			case 10:
+			case 13:
+				break;
+			default:
+				continue;
+		}
+	}
+	write(ascii(b));
+}