Index: src/orca/Gecko.py
===================================================================
--- src/orca/Gecko.py	(revision 2285)
+++ src/orca/Gecko.py	(working copy)
@@ -2701,6 +2701,11 @@
         Returns True if a and b are on the same line.
         """
 
+        # If a and b are identical, they ARE the same line.
+        #
+        if a == b:
+            return True
+
         # For now, we'll just take a look at the bottom of the area.
         # The code after this takes the whole extents into account,
         # but that logic has issues in the case where we have
@@ -3972,6 +3977,11 @@
             [obj, characterOffset] = \
                   self.findPreviousCaretInOrder(obj, characterOffset)
 
+            if obj and not obj.text and \
+               obj.role in [rolenames.ROLE_PARAGRAPH, rolenames.ROLE_SECTION]:
+                [obj, characterOffset] = \
+                    self.findPreviousCaretInOrder(obj, characterOffset, False)
+
         #print "GPL ENDED UP AT", lastObj.role, lineExtents
 
         contents = self.getLineContentsAtOffset(lastObj,
@@ -4079,6 +4089,11 @@
             [obj, characterOffset] = \
                   self.findNextCaretInOrder(obj, characterOffset)
 
+            if obj and not obj.text and \
+               obj.role in [rolenames.ROLE_PARAGRAPH, rolenames.ROLE_SECTION]:
+                [obj, characterOffset] = \
+                      self.findNextCaretInOrder(obj, characterOffset, False)
+
         #print "GNL ENDED UP AT", lastObj.role, lineExtents
         #print "GNL ENDED UP AT", lastObj
         #print "                ", lastObj.role, lastCharacterOffset
