diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c
index 6675ac46945e265f7f63451c24bcdba07eb8ac91..4a6e3636f80479214828d7a0011984a1a459278a 100644
--- a/src/sbbs3/ftpsrvr.c
+++ b/src/sbbs3/ftpsrvr.c
@@ -389,7 +389,7 @@ static JSBool
 js_write(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 {
     uintN		i;
-    JSString *	str;
+    JSString*	str=NULL;
 	FILE*	fp;
 
 	if((fp=(FILE*)JS_GetContextPrivate(cx))==NULL)
@@ -402,11 +402,30 @@ js_write(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 		fprintf(fp,"%s",JS_GetStringBytes(str));
 	}
 
+	if(str==NULL)
+		*rval = JSVAL_VOID;
+	else
+		*rval = STRING_TO_JSVAL(str);
+	return(JS_TRUE);
+}
+
+static JSBool
+js_writeln(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
+{
+	FILE*	fp;
+
+	if((fp=(FILE*)JS_GetContextPrivate(cx))==NULL)
+		return(JS_FALSE);
+
+	js_write(cx,obj,argc,argv,rval);
+	fprintf(fp,"\r\n");
 	return(JS_TRUE);
 }
 
 static JSFunctionSpec js_global_functions[] = {
 	{"write",           js_write,           1},		/* write to HTML file */
+	{"writeln",         js_writeln,         1},		/* write to HTML file */
+	{"print",			js_writeln,         1},		/* alias for writeln */
 	{0}
 };