Index: src/orca/Gecko.py
===================================================================
--- src/orca/Gecko.py	(revision 2052)
+++ src/orca/Gecko.py	(working copy)
@@ -3088,9 +3088,14 @@
 
         crossedLineBoundary = False
         [lastObj, lastCharacterOffset] = [obj, characterOffset]
+        previousChar = None
         while obj:
             extents = self.getExtents(
                 obj, characterOffset, characterOffset + 1)
+            if characterOffset > 0:
+                previousChar = \
+                        obj.text.getText(characterOffset - 1, characterOffset)
+            currentChar = obj.text.getText(characterOffset, characterOffset + 1)
 
             #print "GPL LOOKING AT", obj.role, extents
 
@@ -3104,7 +3109,8 @@
                 if not self.onSameLine(extents, lineExtents):
                     if not crossedLineBoundary:
                         lineExtents = extents
-                        crossedLineBoundary = True
+                        if not (currentChar == "\n" and previousChar != "\n"):
+                            crossedLineBoundary = True
                     else:
                         break
                 elif crossedLineBoundary \
@@ -3152,9 +3158,15 @@
 
         crossedLineBoundary = False
         [lastObj, lastCharacterOffset] = [obj, characterOffset]
+        previousChar = None
         while obj:
             extents = self.getExtents(
                 obj, characterOffset, characterOffset + 1)
+            if characterOffset > 0:
+                previousChar = \
+                        obj.text.getText(characterOffset - 1, characterOffset)
+            currentChar = \
+                        obj.text.getText(characterOffset, characterOffset + 1)
 
             #print "GNL LOOKING AT", obj.role, extents
 
@@ -3168,7 +3180,8 @@
                 if not self.onSameLine(extents, lineExtents):
                     if not crossedLineBoundary:
                         lineExtents = extents
-                        crossedLineBoundary = True
+                        if not (currentChar == "\n" and previousChar != "\n"):
+                            crossedLineBoundary = True
                         if arrowToLineBeginning:
                             [lastObj, lastCharacterOffset] = \
                                 [obj, characterOffset]
