Index: src/orca/Gecko.py
===================================================================
--- src/orca/Gecko.py	(revision 2358)
+++ src/orca/Gecko.py	(working copy)
@@ -2139,7 +2139,21 @@
         accessible text specialization, the characterOffset value
         is meaningless (and typically -1)."""
 
-        # We'll just always assume that the thing in which the caret
+        # We now get caret-moved events for items that do not have
+        # focus.  This will enable us to provide better support for
+        # the use of the Find toolbar.  It also means that we need
+        # to check the event.source before assuming that we should
+        # update our position, set the locus of focus, etc. One new
+        # source of caret-moved events occurs when a form control
+        # is given focus and a non-focusable item (the form itself,
+        # a table cell, etc.) issues the event.
+        #
+        focusable = atspi.Accessibility.STATE_FOCUSABLE
+        if not event.source.state.count(focusable) and \
+           self.isFormField(orca_state.locusOfFocus):
+            return
+        
+        # Otherwise, we'll just assume that the thing in which the caret
         # moved is the locus of focus.
         #
         orca.setLocusOfFocus(event, event.source, False)
