diff --git a/src/orca/braille.py b/src/orca/braille.py
index f9a8c82..e122001 100644
--- a/src/orca/braille.py
+++ b/src/orca/braille.py
@@ -549,8 +549,11 @@ class Text(Region):
         string = string.decode("UTF-8")
         if label:
             label = label.decode("UTF-8")
-        if eol:
-            eol = eol.decode("UTF-8")
+
+        # Make sure there's a clickable space to allow the cursor routing
+        # keys to be used to position the caret at the end of the text.
+        #
+        self.eol = eol and eol.decode("UTF-8") or u' '
 
         try:
             endOffset = endOffset - self.lineOffset
@@ -570,8 +573,6 @@ class Text(Region):
 
         self._maxCaretOffset = self.lineOffset + len(string)
 
-        self.eol = eol
-
         if label:
             self.label = label + ' '
         else:
@@ -585,6 +586,8 @@ class Text(Region):
 
         if not self.contracted and not settings.disableBrailleEOL:
             self.string += self.eol
+        else:
+            self.string += ' '
 
     def __str__(self):
         return "Text: '%s', %d" % (self.string, self.cursorOffset)
diff --git a/src/orca/braille_generator.py b/src/orca/braille_generator.py
index e656db1..6a1e2e0 100644
--- a/src/orca/braille_generator.py
+++ b/src/orca/braille_generator.py
@@ -318,10 +318,11 @@ class BrailleGenerator(generator.Generator):
 
     def _generateEol(self, obj, **args):
         result = []
-        if not args.get('mode', None):
-            args['mode'] = self._mode
-        args['stringType'] = 'eol'
-        result.append(self._script.formatting.getString(**args))
+        if not settings.disableBrailleEOL:
+            if not args.get('mode', None):
+                args['mode'] = self._mode
+            args['stringType'] = 'eol'
+            result.append(self._script.formatting.getString(**args))
         return result
 
     def space(self, delimiter=" "):
