diff --git a/richtextfx/src/main/java/org/fxmisc/richtext/skin/ParagraphText.java b/richtextfx/src/main/java/org/fxmisc/richtext/skin/ParagraphText.java
index <HASH>..<HASH> 100644
--- a/richtextfx/src/main/java/org/fxmisc/richtext/skin/ParagraphText.java
+++ b/richtextfx/src/main/java/org/fxmisc/richtext/skin/ParagraphText.java
@@ -144,10 +144,18 @@ class ParagraphText<S> extends TextFlow {
     }
 
     Optional<HitInfo> hit(double x, double y) {
-        HitInfo hit = textLayout().getHitInfo((float)x, (float)y);
-
-        if(hit.getCharIndex() == paragraph.length()) { // clicked beyond the end of line
-            return Optional.empty();
+        TextLayout textLayout = textLayout();
+        HitInfo hit = textLayout.getHitInfo((float)x, (float)y);
+
+        if(hit.getCharIndex() == paragraph.length() - 1) {
+            // might be a hit beyond the end of line, investigate
+            PathElement[] elems = textLayout.getCaretShape(paragraph.length(), true, 0, 0);
+            Path caret = new Path(elems);
+            if(x > caret.getBoundsInLocal().getMinX()) {
+                return Optional.empty();
+            } else {
+                return Optional.of(hit);
+            }
         } else {
             return Optional.of(hit);
         }
Correctly detect hit beyond the end of paragraph's text.