Index: src/orca/orca_prefs.py
===================================================================
--- src/orca/orca_prefs.py	(revision 2628)
+++ src/orca/orca_prefs.py	(working copy)
@@ -451,13 +451,19 @@
         prefs.writelines("import orca.pronunciation_dict\n\n")
         prefs.writelines("orca.pronunciation_dict.pronunciation_dict={}\n")
 
-    def _writePronunciation(self, prefs, key, value):
+    def _writePronunciation(self, prefs, word, value):
         """Write out a single pronunciation entry to the 
         ~/.orca/user-setting.py settings file.
+
+        Arguments:
+        - prefs: file handle for user preferences.
+        - word: the actual word to be pronunced.
+        - value: the replace string to use.
         """
 
+        key = word.decode("UTF-8").lower().encode("UTF-8")
         prefs.writelines("orca.pronunciation_dict.pronunciation_dict[\"" + \
-                                             key + "\"]=\"" + value + "\"\n")
+                 key + "\"]=[ \"" + word + "\", \"" + value + "\" ]\n")
 
     def _iteratePronunciations(self, prefs, treeModel):
         """Iterate over each of the entries in the tree model and write out
@@ -468,11 +474,11 @@
         iter = treeModel.get_iter_first()
         while iter != None:
             values = treeModel.get(iter, ACTUAL, REPLACEMENT)
-            key = values[ACTUAL]
+            word = values[ACTUAL]
             value = values[REPLACEMENT]
 
-            if key != "":
-                self._writePronunciation(prefs, key, value)
+            if word != "":
+                self._writePronunciation(prefs, word, value)
 
             iter = treeModel.iter_next(iter)
 
Index: src/orca/app_gui_prefs.py
===================================================================
--- src/orca/app_gui_prefs.py	(revision 2628)
+++ src/orca/app_gui_prefs.py	(working copy)
@@ -77,6 +77,19 @@
             label = gtk.Label(orca_state.locusOfFocus.app.name)
             self.notebook.append_page(vbox, label)
 
+    def _createPronunciationTreeView(self, pronunciations=None):
+        """Create the pronunciation dictionary tree view for this specific 
+        application. We call the super class method passing in the 
+        application specific pronunciation dictionary.
+
+        Arguments:
+        - pronunciations: an optional dictionary used to get the
+          pronunciation from.
+        """
+
+        orca_gui_prefs.orcaSetupGUI._createPronunciationTreeView( \
+                              self, appScript.app_pronunciation_dict)
+
     def _showGUI(self):
         """Show the app-specific Orca configuration GUI window. This 
         assumes that the GUI has already been created.
Index: src/orca/pronunciation_dict.py
===================================================================
--- src/orca/pronunciation_dict.py	(revision 2628)
+++ src/orca/pronunciation_dict.py	(working copy)
@@ -35,14 +35,14 @@
 # [[[TODO: richb - need to populate this dictionary with many more values.]]]
 #
 pronunciation_dict = {}
-pronunciation_dict[_("ASAP")]    = _("as soon as possible")
-pronunciation_dict[_("GHz")]     = _("gigahertz")
-pronunciation_dict[_("IMAP")]    = _("eye map")
-pronunciation_dict[_("LDAP")]    = _("ell dap")
-pronunciation_dict[_("LOL")]     = _("laughing out loud")
-pronunciation_dict[_("MHz")]     = _("megahertz")
-pronunciation_dict[_("strikethrough")] = _("strike through")
-pronunciation_dict[_("SELinux")] = _("ess ee linux")
+pronunciation_dict[_("asap")]    = [ _("ASAP"), _("as soon as possible") ]
+pronunciation_dict[_("ghz")]     = [ _("GHz"),  _("gigahertz") ]
+pronunciation_dict[_("imap")]    = [ _("IMAP"), _("eye map") ]
+pronunciation_dict[_("ldap")]    = [ _("LDAP"), _("ell dap") ]
+pronunciation_dict[_("lol")]     = [ _("LOL"),  _("laughing out loud") ]
+pronunciation_dict[_("mhz")]     = [ _("MHz"),  _("megahertz") ]
+pronunciation_dict[_("strikethrough")] = [ _("strikethrough"), _("strike through") ]
+pronunciation_dict[_("selinux")] = [ _("SELinux"), _("ess ee linux") ]
 
 def getPronunciation(word, pronunciations=None):
     """Given a word, return a string that represents what this word
@@ -61,9 +61,10 @@
         word = word.encode("UTF-8")
 
     try:
+        lowerWord = word.decode("UTF-8").lower().encode("UTF-8")
         if pronunciations != None:
-            return pronunciations[word]
+            return pronunciations[lowerWord][1]
         else:
-            return pronunciation_dict[word]
+            return pronunciation_dict[lowerWord][1]
     except:
         return word
Index: src/orca/app_prefs.py
===================================================================
--- src/orca/app_prefs.py	(revision 2628)
+++ src/orca/app_prefs.py	(working copy)
@@ -117,13 +117,19 @@
         prefs.writelines('orca.settings.overridePronunciations = overridePronunciations')
         prefs.writelines("\n")
 
-    def _writePronunciation(self, prefs, key, value):
+    def _writePronunciation(self, prefs, word, value):
         """Write out a single pronunciation entry to the
         ~/.orca/app-settings/<APPNAME>.py settings file.
+
+        Arguments:
+        - prefs: file handle for application specific preferences.
+        - word: the actual word to be pronunced.
+        - value: the replace string to use.
         """
 
-        prefs.writelines( \
-                    "    pronunciations[\"" + key + "\"]=\"" + value + "\"\n")
+        key = word.decode("UTF-8").lower().encode("UTF-8")
+        prefs.writelines("    pronunciations[\"" + \
+                 key + "\"]=[ \"" + word + "\", \"" + value + "\" ]\n")
 
     def _writePronunciationMap(self, prefs, treeModel):
         """Write to configuration file 'prefs' the new application specific
Index: src/orca/orca_gui_prefs.py
===================================================================
--- src/orca/orca_gui_prefs.py	(revision 2628)
+++ src/orca/orca_gui_prefs.py	(working copy)
@@ -1056,12 +1056,16 @@
                     self.pronunciationView.set_search_column(i)
                     break
 
-    def _createPronunciationTreeView(self):
+    def _createPronunciationTreeView(self, pronunciations=None):
         """Create the pronunciation dictionary tree view. The view is the
         pronunciationTreeView GtkTreeView widget. The view will consist
         of a list containing two columns:
           ACTUAL      - the actual text string (word).
           REPLACEMENT - the string that is used to pronounce that word.
+
+        Arguments:
+        - pronunciations: an optional dictionary used to get the 
+          pronunciation from.
         """
 
         self.pronunciationView = \
@@ -1072,12 +1076,16 @@
         # Initially setup the list store model based on the values of all
         # existing entries in the pronunciation dictionary.
         #
-        pronDict = pronunciation_dict.pronunciation_dict
+        if pronunciations != None:
+            pronDict = pronunciations
+        else:
+            pronDict = pronunciation_dict.pronunciation_dict
         for pronKey in sorted(pronDict.keys()):
             iter = model.append() 
+            actual, replacement = pronDict[pronKey]
             model.set(iter, 
-                      ACTUAL, pronKey,
-                      REPLACEMENT, pronDict[pronKey])
+                      ACTUAL, actual,
+                      REPLACEMENT, replacement)
 
         self.pronunciationView.set_model(model)
 
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 2628)
+++ ChangeLog	(working copy)
@@ -1,3 +1,15 @@
+2007-08-13  Rich Burridge <rich.burridge@sun.com>
+
+        * src/orca/orca_prefs.py:
+          src/orca/app_gui_prefs.py:
+          src/orca/default.py:
+          src/orca/focus_tracking_presenter.py:
+          src/orca/pronunciation_dict.py:
+          src/orca/app_prefs.py:
+          src/orca/orca_gui_prefs.py:
+          Fixed bug #464754 – Pronunciation dictionary checks should be 
+          case insensitive.
+
 2007-08-13  Tomas Cerha  <via william.walker@sun.com>
 
         Fix for bug 455308 – Output module and voice selection with Speech
