diff --git a/gnome-dictionary/data/gnome-dictionary.schemas.in b/gnome-dictionary/data/gnome-dictionary.schemas.in
index 4292a8a..11a0981 100644
--- a/gnome-dictionary/data/gnome-dictionary.schemas.in
+++ b/gnome-dictionary/data/gnome-dictionary.schemas.in
@@ -196,6 +196,19 @@
       </locale>
     </schema>
     
+    <schema>
+      <key>/schemas/apps/gnome-dictionary/show_go_button</key>
+      <applyto>/apps/gnome-dictionary/show_go_button</applyto>
+      <owner>gnome-dictionary</owner>
+      <type>bool</type>
+      <default>TRUE</default>
+      <locale name="C">
+        <short>Whether to show the go button</short>
+	<long>The go button is used to submit words.
+	TRUE to show it.  FALSE to hide it.</long>
+      </locale>
+    </schema>
+    
   </schemalist>
   
 </gconfschemafile>
diff --git a/gnome-dictionary/src/gdict-pref-dialog.h b/gnome-dictionary/src/gdict-pref-dialog.h
index 30ccf21..0a79f24 100644
--- a/gnome-dictionary/src/gdict-pref-dialog.h
+++ b/gnome-dictionary/src/gdict-pref-dialog.h
@@ -48,6 +48,7 @@ #define GDICT_GCONF_SIDEBAR_VISIBLE_KEY	
 #define GDICT_GCONF_SIDEBAR_PAGE_KEY            GDICT_GCONF_DIR "/sidebar-page"
 #define GDICT_GCONF_SIDEBAR_WIDTH_KEY           GDICT_GCONF_DIR "/sidebar-width"
 #define GDICT_GCONF_STATUSBAR_VISIBLE_KEY	GDICT_GCONF_DIR "/statusbar-visible"
+#define GDICT_GCONF_SHOW_GO_BUTTON_KEY		GDICT_GCONF_DIR "/show_go_button"
 
 #define DOCUMENT_FONT_KEY 			"/desktop/gnome/interface/document_font_name"
 
diff --git a/gnome-dictionary/src/gdict-window.c b/gnome-dictionary/src/gdict-window.c
index 85aa91a..6a6dfb5 100644
--- a/gnome-dictionary/src/gdict-window.c
+++ b/gnome-dictionary/src/gdict-window.c
@@ -1137,7 +1137,7 @@ entry_activate_cb (GtkWidget   *widget,
   if (!window->context)
     return;
   
-  word = gtk_entry_get_text (GTK_ENTRY (widget));
+  word = gtk_entry_get_text (GTK_ENTRY (window->entry));
   if (!word || *word == '\0')
     return;
 
@@ -1373,6 +1373,7 @@ gdict_window_constructor (GType         
   GtkWidget *frame1, *frame2;
   GtkWidget *vbox;
   GtkWidget *label;
+  GtkWidget *go_button;
   GtkActionGroup *action_group;
   GtkAccelGroup *accel_group;
   GtkAction *action;
@@ -1457,6 +1458,14 @@ gdict_window_constructor (GType         
   gtk_widget_show (window->entry);
 
   gtk_label_set_mnemonic_widget (GTK_LABEL (label), window->entry);
+  
+  if (gconf_client_get_bool (window->gconf_client, GDICT_GCONF_SHOW_GO_BUTTON_KEY, NULL))
+    {
+      go_button = gtk_button_new_with_mnemonic (_("Go"));
+      g_signal_connect (go_button, "clicked", G_CALLBACK (entry_activate_cb), window);
+      gtk_box_pack_start (GTK_BOX (hbox), go_button, FALSE, FALSE, 0);
+      gtk_widget_show (go_button);
+    }
 
   handle = gtk_hpaned_new ();
   gtk_box_pack_start (GTK_BOX (vbox), handle, TRUE, TRUE, 0);
