diff --git a/images/apple/PLFORTH.PO b/images/apple/PLFORTH.PO
index 4f6a5c2..124bbcd 100755
Binary files a/images/apple/PLFORTH.PO and b/images/apple/PLFORTH.PO differ
diff --git a/src/toolsrc/plforth.pla b/src/toolsrc/plforth.pla
index 681b721..4cd43c0 100644
--- a/src/toolsrc/plforth.pla
+++ b/src/toolsrc/plforth.pla
@@ -375,7 +375,7 @@ byte = imm_flag | componly_flag
 word = @d_endcase, 0, @_do_
 // LEAVE
 char d_leave = "LEAVE"
-byte = componly_flag
+byte = componly_flag | showcr_flag
 word = @d_do, 0, @_leave_
 // COMPILED LOOP ( not in vocabulary )
 char d_doloop = "(DOLOOP)"
@@ -475,7 +475,7 @@ byte = imm_flag
 word = @d_interponly, 0, @_immediate_
 // EXIT
 char d_exit = "EXIT"
-byte = imm_flag | componly_flag | showcr_flag
+byte = imm_flag | componly_flag
 word = @d_immediate, 0, @_exit_
 // SEMI
 char d_semi = ";"
@@ -527,19 +527,19 @@ byte = 0
 word = @d__isnum_, 0, @_trailing_
 // PRINT @TOS
 char d_prat = "?"
-byte = showcr_flag
+byte = 0
 word = @d_trailing, 0, @_prat_
 // PRINT TOS
 char d_prtos = "."
-byte = showcr_flag
+byte = 0
 word = @d_prat, 0, @_prval_
 // PRINT TOS HEX
 char d_prtoshex = "$."
-byte = showcr_flag
+byte = 0
 word = @d_prtos, 0, @_prhex_
 // PRINT TOS HEX BYTE
 char d_prtosbyte = "C$."
-byte = showcr_flag
+byte = 0
 word = @d_prtoshex, 0, @_prbyte_
 // EMIT
 char d_emit = "EMIT"
@@ -547,7 +547,7 @@ byte = 0
 word = @d_prtosbyte, 0, @putc
 // CR
 char d_cr = "CR"
-byte = 0
+byte = showcr_flag
 word = @d_emit, 0, @putln
 // SPACE
 char d_space = "SPACE"
@@ -579,7 +579,7 @@ byte = param_flag | inline_flag
 word = 0, 0, @_slit_, $2E
 // PRINT STRING FROM STACK
 char d_doprstr = "(.\")"
-byte = showcr_flag
+byte = 0
 word = @d_str, 0, @puts
 // PRINT STRING
 char d_prstr = ".\""
@@ -627,7 +627,7 @@ byte = showcr_flag
 word = @d_abortstr, 0, @_restart_
 // COMMENT
 char d_comment = "("
-byte = imm_flag | showcr_flag
+byte = imm_flag
 word = @d_exitforth, 0, @_comment_
 //
 // PLFORTH custom words
@@ -642,31 +642,31 @@ byte = interponly_flag
 word = @d_bye, 0, @_show_
 // SHOW STACK
 char d_showstack = "SHOWSTACK"
-byte = 0
+byte = showcr_flag
 word = @d_show, 0, @_showstack_
 // SHOW RSTACK
 char d_showrstack = "SHOWRSTACK"
-byte = 0
+byte = showcr_flag
 word = @d_showstack, 0, @_showrstack_
 // TRACE ON
 char d_tron = "TRON"
-byte = 0
+byte = showcr_flag
 word = @d_showrstack, 0, @_tron_
 // TRACE OFF
 char d_troff = "TROFF"
-byte = 0
+byte = showcr_flag
 word = @d_tron, 0, @_troff_
 // SINGLE STEP ON
 char d_stepon = "STEPON"
-byte = 0
+byte = showcr_flag
 word = @d_troff, 0, @_stepon_
 // SINGLE STEP OFF
 char d_stepoff = "STEPOFF"
-byte = 0
+byte = showcr_flag
 word = @d_stepon, 0, @_stepoff_
 // BREAK OUT
 char d_brk = "BRK"
-byte = 0
+byte = showcr_flag
 word = @d_stepoff, 0, @_brk_
 // BREAK ON
 char d_brkon = "BRKON"
@@ -689,7 +689,7 @@ word = @d_itc, 0, @_pbc_
 //
 // LIST VOCAB
 char d_vlist = "VLIST"
-byte = 0
+byte = showcr_flag
 word = @d_pbc, 0, @_vlist_
 //
 // Helper routines
@@ -903,7 +903,7 @@ end
 // Break handler
 //
 def showtrace(dentry)#0
-    puts("\n( "); _showstack_; puts(") "); puts(dentry); putc(' ')
+    putln; puts("( "); _showstack_; puts(") "); puts(dentry); putc(' ')
 end
 def brkhandle(dentry)#0
   word brk_infn, brk_inptr, brk_iip