cairo_t *cr = cursor->cr;
     double new_x, new_y;
 
+    if (strlen (word) < 3)
+       return;
+
     cairo_move_to (cr, cursor->x, cursor->y);
     if (*entry & RACK_DICT_ENTRY_FOUND) {
        cairo_show_text (cr, word);
 
     if (event->keyval == GDK_Return) {
        dict_entry_t *entry;
-       entry = dict_lookup (rack->solution, rack->guess);
-       if (DICT_ENTRY_IS_WORD (entry)) {
-           *entry = *entry | RACK_DICT_ENTRY_FOUND;
-           goo_canvas_item_simple_changed (GOO_CANVAS_ITEM_SIMPLE (rack->solution_item), FALSE);
+       if (rack->guess_length >= 3) {
+           entry = dict_lookup (rack->solution, rack->guess);
+           if (DICT_ENTRY_IS_WORD (entry)) {
+               *entry = *entry | RACK_DICT_ENTRY_FOUND;
+               goo_canvas_item_simple_changed (GOO_CANVAS_ITEM_SIMPLE (rack->solution_item), FALSE);
+           }
        }
        rack_return_all (rack);
        return TRUE;