diff --git a/src/memline.c b/src/memline.c
index 860438c..2ac47af 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -5738,7 +5738,7 @@
 	count = (long)(buf->b_ml.ml_locked_high) -
 		(long)(buf->b_ml.ml_locked_low) + 1;
 	start_idx = idx = curline - buf->b_ml.ml_locked_low;
-	if (idx == 0)// first line in block, text at the end
+	if (idx == 0)  // first line in block, text at the end
 	    text_end = dp->db_txt_end;
 	else
 	    text_end = ((dp->db_index[idx - 1]) & DB_INDEX_MASK);
@@ -5752,13 +5752,38 @@
 	}
 	else
 	{
+#ifdef FEAT_PROP_POPUP
+	    long textprop_total = 0;
+	    long textprop_size = 0;
+	    char_u *l1, *l2;
+#endif
+
 	    extra = 0;
-	    while (offset >= size
-		       + text_end - (int)((dp->db_index[idx]) & DB_INDEX_MASK)
-								      + ffdos)
+	    for (;;)
 	    {
+#ifdef FEAT_PROP_POPUP
+		if (buf->b_has_textprop)
+		{
+		    // compensate for the extra bytes taken by textprops
+		    l1 = (char_u *)dp + ((dp->db_index[idx]) & DB_INDEX_MASK);
+		    l2 = (char_u *)dp + (idx == 0 ? dp->db_txt_end
+				  : ((dp->db_index[idx - 1]) & DB_INDEX_MASK));
+		    textprop_size = (l2 - l1) - (STRLEN(l1) + 1);
+		}
+#endif
+		if (!(offset >= size
+			+ text_end - (int)((dp->db_index[idx]) & DB_INDEX_MASK)
+#ifdef FEAT_PROP_POPUP
+			- textprop_total - textprop_size
+#endif
+			+ ffdos))
+		    break;
+
 		if (ffdos)
 		    size++;
+#ifdef FEAT_PROP_POPUP
+		textprop_total += textprop_size;
+#endif
 		if (idx == count - 1)
 		{
 		    extra = 1;
@@ -5776,7 +5801,8 @@
 	    // lengths.
 	    len = 0;
 	    for (i = start_idx; i <= idx; ++i)
-		len += (int)STRLEN((char_u *)dp + ((dp->db_index[i]) & DB_INDEX_MASK)) + 1;
+		len += (int)STRLEN((char_u *)dp
+				    + ((dp->db_index[i]) & DB_INDEX_MASK)) + 1;
 	}
 	else
 #endif
diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim
index ca6fd74..32001b3 100644
--- a/src/testdir/test_textprop.vim
+++ b/src/testdir/test_textprop.vim
@@ -664,7 +664,7 @@
   call prop_type_delete('comment')
 endfunc
 
-func Test_prop_byteoff()
+func Test_prop_line2byte()
   call prop_type_add('comment', {'highlight': 'Directory'})
   new
   call setline(1, ['line1', 'second line', ''])
@@ -677,6 +677,22 @@
   call prop_type_delete('comment')
 endfunc
 
+func Test_prop_byte2line()
+  new
+  set ff=unix
+  call setline(1, ['one one', 'two two', 'three three', 'four four', 'five'])
+  call assert_equal(4, byte2line(line2byte(4)))
+  call assert_equal(5, byte2line(line2byte(5)))
+
+  call prop_type_add('prop', {'highlight': 'Directory'})
+  call prop_add(3, 1, {'length': 5, 'type': 'prop'})
+  call assert_equal(4, byte2line(line2byte(4)))
+  call assert_equal(5, byte2line(line2byte(5)))
+
+  bwipe!
+  call prop_type_delete('prop')
+endfunc
+
 func Test_prop_undo()
   new
   call prop_type_add('comment', {'highlight': 'Directory'})
diff --git a/src/version.c b/src/version.c
index 0dac41e..2d502be 100644
--- a/src/version.c
+++ b/src/version.c
@@ -743,6 +743,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    115,
+/**/
     114,
 /**/
     113,
