diff --git a/src/toolsrc/plforth.pla b/src/toolsrc/plforth.pla
index 05db85b..b1cf36a 100644
--- a/src/toolsrc/plforth.pla
+++ b/src/toolsrc/plforth.pla
@@ -22,7 +22,7 @@ res[t_except]             exitforth
 //
 byte  nullstr = 0
 word  keyinbuf = @nullstr // Point somewhere benign for starters (updated in keyin)
-word  inbufptr
+word  inbufptr = @nullstr
 byte  inref[SRCREFS]
 word  previnptr[SRCREFS]
 //
@@ -121,6 +121,9 @@ predef _space_#0, _spaces_(a)#0, _show_#0, _showstack_#0, _showrstack_#0
 predef _cont_#0, _restart_#0, _bye_#0, _quit_#0
 predef _abort_(a)#0, _doabortstr_(a,b)#0, _abortstr_#0
 predef _compword_(dentry)#0, _compliteral_(a)#0, _execword_(dentry)#0, _isnum_(a,b)#2
+//
+// Forth Vocabulary
+//
 // DROP
 char d_drop = "DROP"
 byte = inline_flag | showcr_flag
@@ -832,8 +835,8 @@ end
 //
 def warmstart#0
   (@_reset_estack)()#0
-  brk    = 0
-  brkcfa = 0
+  //brk    = 0
+  //brkcfa = 0
   RSP    = RSTK_SIZE
   if state & comp_flag // Undo compilation state
     heaprelease(vlist)
@@ -1077,7 +1080,7 @@ def _interpret_#0
         ^inchars = inlen
         puts(inchars)
         puts(" ? No match\n")
-        warmstart
+        if !brk; warmstart; fin
       else
         if state & comp_flag
           _compliteral_(value)