diff --git a/Nasal/screen.nas b/Nasal/screen.nas
index 732c5708b..958f19a04 100644
--- a/Nasal/screen.nas
+++ b/Nasal/screen.nas
@@ -66,17 +66,20 @@ window = {
 		if (g == nil) { g = me.fg[1] }
 		if (b == nil) { b = me.fg[2] }
 		if (a == nil) { a = me.fg[3] }
-		append(me.lines, [msg, r, g, b, a]);
-		if (size(me.lines) > me.maxlines) {
-			me.lines = subvec(me.lines, 1);
+		var line = split("\n", msg);
+		foreach (l; line) {
+			append(me.lines, [l, r, g, b, a]);
+			if (size(me.lines) > me.maxlines) {
+				me.lines = subvec(me.lines, 1);
+				if (me.autoscroll) {
+					me.skiptimer += 1;
+				}
+			}
 			if (me.autoscroll) {
-				me.skiptimer += 1;
+				settimer(func { me._timeout_() }, me.autoscroll, 1);
 			}
 		}
 		me.show();
-		if (me.autoscroll) {
-			settimer(func { me._timeout_() }, me.autoscroll, 1);
-		}
 	},
 
 	show : func {
@@ -150,7 +153,7 @@ settimer(func {
 	}, 1);
 
 
-	log = window.new(nil, -40, 10, 10);
+	log = window.new(nil, -30, 10, 10);
 
 	var b = "/sim/screen/";
 	setlistener(b ~ "black",   func { log.write(cmdarg().getValue(), 0,   0,   0) });