Index: src/orca/Gecko.py
===================================================================
--- src/orca/Gecko.py	(revision 3434)
+++ src/orca/Gecko.py	(working copy)
@@ -7140,6 +7140,49 @@
             offset = offsetInParent
             obj = obj.parent
 
+        # Find the beginning of the line.
+        #
+        if obj.getRole() == pyatspi.ROLE_TABLE_CELL:
+            containingTable = self.getAncestor(obj,
+                                               [pyatspi.ROLE_TABLE],
+                                               [pyatspi.ROLE_DOCUMENT_FRAME])
+            if containingTable:
+                table = containingTable.queryTable()
+                col = 0
+                if obj.parent == containingTable:
+                    row = table.getRowAtIndex(obj.getIndexInParent())
+                    col = table.getColumnAtIndex(obj.getIndexInParent())
+                else:
+                    row = table.getRowAtIndex(obj.parent.getIndexInParent())
+                    col = table.getColumnAtIndex(obj.parent.getIndexInParent())
+                if col > 0:
+                    cell = table.getAccessibleAt(row, 0)
+                    cellExtents = cell.queryComponent().getExtents(0)
+                    cellExtents = [cellExtents.x, cellExtents.y,
+                                   cellExtents.width, cellExtents.height]
+                    if self.onSameLine(extents, cellExtents):
+                        obj = cell
+                        offset = 0
+
+        else:
+            text = self.queryNonEmptyText(obj)
+            if text:
+                line = text.getTextAtOffset(offset, boundary)
+                if line[2] < offset:
+                    # The start of the line is a link that started on the
+                    # previous line.  We'll set obj to it and get the
+                    # rest of the line later.
+                    #
+                    child = obj[self.getChildIndex(obj, line[1])]
+                    text = self.queryNonEmptyText(child)
+                    if text:
+                        line = text.getTextAtOffset(text.characterCount,
+                                                    boundary)
+                        obj = child
+                        offset = line[1]
+                else:
+                    offset = line[1]
+
         # Get the objects on this line.
         #
         objects = self.getObjectsFromEOCs(obj, offset, boundary)
