diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 029915eda53..f92d13db2d8 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+start-sanitize-gdbtk
+Wed May 15 16:04:09 1996  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* gdbtk.tcl (create_command_window): If command window's buffer
+	is disabled, don't execute any of the key bindings.
+end-sanitize-gdbtk
+
 Wed May 15 08:25:12 1996  Jeffrey A Law  (law@cygnus.com)
 
 	* coffread.c (coff_symtab_read): Handle C_LABEL symbols like
@@ -14,7 +21,7 @@ Tue May 14 18:05:16 1996  Stu Grossman  (grossman@critters.cygnus.com)
 	* (procfs_pid_to_str):  New routine to print out thread id's in an
 	intelligible manner.
 	* sol-thread.c (sol_thread_fetch_registers):  Re-order manner in
-	which supply_register is called to fix bug with writing writing
+	which supply_register is called to fix bug with writing
 	individual regs.
 	* config/sparc/tm-sun4sol2.h:  Define default for
 	target_pid_to_str in case host lacks libthread_db.
@@ -45,9 +52,9 @@ Mon May 13 17:40:58 1996  Jeffrey A Law  (law@cygnus.com)
 Mon May 13 16:17:36 1996  Stu Grossman  (grossman@critters.cygnus.com)
 
 	* sol-thread.c:  More cleanup, add comments.
-	* (sol_thread_resume):  Prevent people from trying to step
+	(sol_thread_resume):  Prevent people from trying to step
 	inactive threads.
-	* (sol_thread_wait sol_thread_fetch_registers
+	(sol_thread_wait sol_thread_fetch_registers
 	sol_thread_store_registers):  Remove unnecessary check for
 	sol_thread_active.  These routines won't get called unless threads
 	are active.
diff --git a/gdb/gdbtk.tcl b/gdb/gdbtk.tcl
index 344163ca58f..5709a57dcd0 100644
--- a/gdb/gdbtk.tcl
+++ b/gdb/gdbtk.tcl
@@ -2319,14 +2319,23 @@ proc create_command_window {} {
 	gdb_cmd {set height 0}
 	gdb_cmd {set width 0}
 
+	bind .cmd.text <Control-c> gdb_stop
+
         # Tk uses the Motifism that Delete means delete forward.  I
 	# hate this, and I'm not gonna take it any more.
         set bsBinding [bind Text <BackSpace>]
         bind .cmd.text <Delete> "delete_char %W ; $bsBinding; break"
-	bind .cmd.text <BackSpace> {delete_char %W}
-	bind .cmd.text <Control-c> gdb_stop
-	bind .cmd.text <Control-u> {delete_line %W ; break}
+	bind .cmd.text <BackSpace> {
+	  if {([%W get -state] == "disabled")} { break }
+	  delete_char %W
+	}
+	bind .cmd.text <Control-u> {
+	  if {([%W cget -state] == "disabled")} { break }
+	  delete_line %W
+	  break
+	}
 	bind .cmd.text <Any-Key> {
+	  if {([%W cget -state] == "disabled")} { break }
 	  set saw_tab 0
 	  %W insert end %A
 	  %W see end
@@ -2334,6 +2343,7 @@ proc create_command_window {} {
 	  break
 	}
 	bind .cmd.text <Key-Return> {
+	  if {([%W cget -state] == "disabled")} { break }
 	  set saw_tab 0
 	  %W insert end \n
 	  interactive_cmd $command_line
@@ -2356,6 +2366,7 @@ proc create_command_window {} {
         bind .cmd.text <B2-Motion> break
         bind .cmd.text <ButtonRelease-2> break
 	bind .cmd.text <Key-Tab> {
+	  if {([%W cget -state] == "disabled")} { break }
 	  set choices [gdb_cmd "complete $command_line"]
 	  set choices [string trimright $choices \n]
 	  set choices [split $choices \n]