--- ../orca/src/orca/orca_console_prefs.py	2009-11-07 16:36:50.000000000 +0530
+++ src/orca/orca_console_prefs.py	2009-11-09 13:03:16.000000000 +0530
@@ -65,18 +65,23 @@
 # Finally, this expression should match what you've chosen for the
 # translation of the "Enter y or n:" strings for this file.
 #
-YESEXPR = re.compile(_("^[Yy1]"))
 
 def checkYes(value) :
-    """Checks if a string represents a yes.
-
+    """Checks if a string represents a yes, no.
     Arguments:
     - value: a string read from the console
 
     Returns True if the argument represents a yes
     """
-    return YESEXPR.match(value) != None
-
+    uPut = value.lower()
+    if uPut in ('y', 'ye','yes'):
+        return True
+    elif uPut in ('n', 'no'):
+        return False
+    else:
+        sayAndPrint(_("Invalid response, this feature will be disabled.\n"))
+        return False
+  
 def sayAndPrint(text,
                 stop=False,
                 getInput=False,
@@ -175,6 +180,8 @@
             try:
                 choice = int(sayAndPrint(_("Enter choice: "), False, True))
                 break
+            except ValueError:
+                sayAndPrint(_("Please enter a valid number.\n"))
             except:
                 pass
         if (choice <= 0) or (choice >= i):
@@ -212,6 +219,8 @@
             try:
                 choice = int(sayAndPrint(_("Enter choice: "), False, True))
                 break
+            except ValueError:
+                sayAndPrint(_("Please enter a valid number.\n"))
             except:
                 pass
         if (choice <= 0) or (choice >= i):
@@ -267,6 +276,8 @@
                                          True,                # getInput
                                          speechServerChoice)) # speech server
                 break
+            except ValueError:
+                sayAndPrint(_("Please enter a valid number.\n"))
             except:
                 pass
         if (choice <= 0) or (choice >= i):
@@ -322,68 +333,59 @@
                          True,
                          speechServerChoice,
                          speechVoiceChoice)
-    if checkYes(answer):
-        prefsDict["enableKeyEcho"] = True
+    prefsDict["enableKeyEcho"] = checkYes(answer)
 
-        # Translators: this is in reference to key echo for
-        # normal text entry keys.
-        #
-        answer = sayAndPrint( \
-          _("Enable alphanumeric and punctuation keys?  Enter y or n: "),
+    # Translators: this is in reference to key echo for
+    # normal text entry keys.
+    #
+    answer = sayAndPrint( \
+        _("Enable alphanumeric and punctuation keys?  Enter y or n: "),
                              True,
                              True,
                              speechServerChoice,
                              speechVoiceChoice)
-        prefsDict["enablePrintableKeys"] = checkYes(answer)
+    prefsDict["enablePrintableKeys"] = checkYes(answer)
 
-        # Translators: this is in reference to key echo for
-        # CTRL, ALT, Shift, Insert, and "Fn" on laptops.
-        #
-        answer = sayAndPrint(_("Enable modifier keys?  Enter y or n: "),
+    # Translators: this is in reference to key echo for
+    # CTRL, ALT, Shift, Insert, and "Fn" on laptops.
+    #
+    answer = sayAndPrint(_("Enable modifier keys?  Enter y or n: "),
                              True,
                              True,
                              speechServerChoice,
                              speechVoiceChoice)
-        prefsDict["enableModifierKeys"] = checkYes(answer)
+    prefsDict["enableModifierKeys"] = checkYes(answer)
 
-        # Translators: this is in reference to key echo for
-        # Caps Lock, Num Lock, Scroll Lock, etc.
-        #
-        answer = sayAndPrint(_("Enable locking keys?  Enter y or n: "),
+    # Translators: this is in reference to key echo for
+    # Caps Lock, Num Lock, Scroll Lock, etc.
+    #
+    answer = sayAndPrint(_("Enable locking keys?  Enter y or n: "),
                              True,
                              True,
                              speechServerChoice,
                              speechVoiceChoice)
-        prefsDict["enableLockingKeys"] = checkYes(answer)
+    prefsDict["enableLockingKeys"] = checkYes(answer)
 
-        # Translators: this is in reference to key echo for
-        # the keys at the top of the keyboard.
-        #
-        answer = sayAndPrint(_("Enable function keys?  Enter y or n: "),
+    # Translators: this is in reference to key echo for
+    # the keys at the top of the keyboard.
+    #
+    answer = sayAndPrint(_("Enable function keys?  Enter y or n: "),
                              True,
                              True,
                              speechServerChoice,
                              speechVoiceChoice)
-        prefsDict["enableFunctionKeys"] = checkYes(answer)
+    prefsDict["enableFunctionKeys"] = checkYes(answer)
 
-        # Translators: this is in reference to key echo for
-        # space, enter, escape, tab, backspace, delete, arrow
-        # keys, page up, page down, etc.
-        #
-        answer = sayAndPrint(_("Enable action keys?  Enter y or n: "),
+    # Translators: this is in reference to key echo for
+    # space, enter, escape, tab, backspace, delete, arrow
+    # keys, page up, page down, etc.
+    #
+    answer = sayAndPrint(_("Enable action keys?  Enter y or n: "),
                              True,
                              True,
                              speechServerChoice,
                              speechVoiceChoice)
-        prefsDict["enableActionKeys"] = checkYes(answer)
-
-    else:
-        prefsDict["enableKeyEcho"]       = False
-        prefsDict["enablePrintableKeys"] = False
-        prefsDict["enableModifierKeys"]  = False
-        prefsDict["enableLockingKeys"]   = False
-        prefsDict["enableFunctionKeys"]  = False
-        prefsDict["enableActionKeys"]    = False
+    prefsDict["enableActionKeys"] = checkYes(answer)
 
     # Translators: we allow the user to choose between the desktop (i.e.,
     # has a numeric keypad) and laptop (i.e., small and compact) keyboard
@@ -418,6 +420,8 @@
             choice = int(sayAndPrint(_("Enter choice: "),
                          False, True, speechServerChoice, speechVoiceChoice))
             break
+        except ValueError:
+            sayAndPrint(_("Please enter a valid number.\n"))
         except:
             pass
     if choice == 2:
