Index: src/orca/Gecko.py
===================================================================
--- src/orca/Gecko.py	(revision 2978)
+++ src/orca/Gecko.py	(working copy)
@@ -5986,15 +5986,6 @@
         if self.isSameObject(obj, documentFrame):
             return [None, -1]
 
-        # If we've found a list item in an HTML form, the caret had been
-        # just before the list.  Set obj to the parent list so we can
-        # maneuver around it rather than wander into it.
-        #
-        if obj.role == rolenames.ROLE_LIST_ITEM \
-           and (obj.state.count(atspi.Accessibility.STATE_FOCUSABLE) \
-                or self.isAriaWidget()):
-            obj = obj.parent
-
         while obj.parent and obj != obj.parent:
             characterOffsetInParent = self.getCharacterOffsetInParent(obj)
             if characterOffsetInParent >= 0:
@@ -6084,15 +6075,6 @@
         if self.isSameObject(obj, documentFrame):
             return [None, -1]
 
-        # If we've found a list item in an HTML form, the caret had been
-        # just after the list.  Set obj to the parent list so we can
-        # maneuver around it rather than wander into it.
-        #
-        if obj.role == rolenames.ROLE_LIST_ITEM \
-           and (obj.state.count(atspi.Accessibility.STATE_FOCUSABLE) \
-                 or self.isAriaWidget()):
-            obj = obj.parent
-
         while obj.parent and obj != obj.parent:
             characterOffsetInParent = self.getCharacterOffsetInParent(obj)
             if characterOffsetInParent >= 0:
@@ -6965,8 +6947,8 @@
         #
         if obj.role == rolenames.ROLE_LIST \
            and obj.state.count(atspi.Accessibility.STATE_FOCUSABLE):
-            [obj, characterOffset] = self.findPreviousCaretInOrder(obj=obj,
-                                     includeNonText=False)
+            characterOffset = self.getCharacterOffsetInParent(obj)
+            obj = obj.parent
 
         # Reset focus if need be.
         #
