Index: src/orca/Gecko.py
===================================================================
--- src/orca/Gecko.py	(revision 2423)
+++ src/orca/Gecko.py	(working copy)
@@ -6081,6 +6081,11 @@
             #
             speech.speak(_("Wrapping to bottom."))
         if obj:
+            # If the object is a list item, we need to give focus to
+            # the parent list.
+            #
+            if obj.role == rolenames.ROLE_LIST_ITEM:
+                obj = obj.parent
             [obj, characterOffset] = self.findFirstCaretContext(obj, 0)
             self.setCaretPosition(obj, characterOffset)
             self.updateBraille(obj)
@@ -6093,8 +6098,16 @@
             speech.speak(_("No more form fields."))
 
     def goNextFormField(self, inputEvent):
+        # If the current object is a list item in a form field, we
+        # need to move to the end of this list before we search for
+        # the next list; otherwise we'll find the current list again.
+        #
         [obj, characterOffset] = self.getCaretContext()
         currentObj = obj
+        if obj.role == rolenames.ROLE_LIST_ITEM and \
+           obj.state.count(atspi.Accessibility.STATE_FOCUSABLE):
+            obj = obj.parent.child(obj.parent.childCount - 1)
+
         found = False
         wrapped = False
         wrap = True
