diff --git a/lib/textbringer/controller.rb b/lib/textbringer/controller.rb
index <HASH>..<HASH> 100644
--- a/lib/textbringer/controller.rb
+++ b/lib/textbringer/controller.rb
@@ -59,7 +59,8 @@ module Textbringer
               end
             end
           rescue => e
-            Window.echo_area.show(e.to_s.chomp)
+            message(e.to_s.chomp)
+            STDERR.puts(e.backtrace)
             Window.beep
           end
           Window.redisplay
@@ -101,7 +102,7 @@ module Textbringer
 
     def key_binding(key_sequence)
       @overriding_map&.lookup(key_sequence) ||
-      Buffer.current.keymap&.lookup(key_sequence) ||
+      Buffer.current&.keymap&.lookup(key_sequence) ||
         GLOBAL_MAP.lookup(key_sequence)
     end
   end
diff --git a/lib/textbringer/minibuffer.rb b/lib/textbringer/minibuffer.rb
index <HASH>..<HASH> 100644
--- a/lib/textbringer/minibuffer.rb
+++ b/lib/textbringer/minibuffer.rb
@@ -3,6 +3,9 @@
 module Textbringer
   module Minibuffer
     def message(msg)
+      buffer = Buffer.find_or_new("*Messages*")
+      buffer.end_of_buffer
+      buffer.insert(msg + "\n")
       Window.echo_area.show(msg)
     end
Log messages are saved in *Messsages*.