diff --git a/src/getchar.c b/src/getchar.c
index 3b4aad0..014e575 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -88,8 +88,6 @@
 
 static size_t	last_recorded_len = 0;	// number of last recorded chars
 
-static size_t	last_get_recorded_len = 0;	// length of the string returned from the
-						// last call to get_recorded()
 static size_t	last_get_inserted_len = 0;	// length of the string returned from the
 						// last call to get_inserted()
 
@@ -173,8 +171,9 @@
 get_recorded(void)
 {
     char_u	*p;
+    size_t	len;
 
-    p = get_buffcont(&recordbuff, TRUE, &last_get_recorded_len);
+    p = get_buffcont(&recordbuff, TRUE, &len);
     if (p == NULL)
 	return NULL;
 
@@ -184,36 +183,23 @@
      * Remove the characters that were added the last time, these must be the
      * (possibly mapped) characters that stopped the recording.
      */
-    if (last_get_recorded_len >= last_recorded_len)
+    if (len >= last_recorded_len)
     {
-	last_get_recorded_len -= last_recorded_len;
-	p[last_get_recorded_len] = NUL;
+	len -= last_recorded_len;
+	p[len] = NUL;
     }
 
     /*
      * When stopping recording from Insert mode with CTRL-O q, also remove the
      * CTRL-O.
      */
-    if (last_get_recorded_len > 0 && restart_edit != 0
-				    && p[last_get_recorded_len - 1] == Ctrl_O)
-    {
-	--last_get_recorded_len;
-	p[last_get_recorded_len] = NUL;
-    }
+    if (len > 0 && restart_edit != 0 && p[len - 1] == Ctrl_O)
+	p[len - 1] = NUL;
 
     return (p);
 }
 
 /*
- * Return the length of string returned from the last call of get_recorded().
- */
-    size_t
-get_recorded_len(void)
-{
-    return last_get_recorded_len;
-}
-
-/*
  * Return the contents of the redo buffer as a single string.
  * K_SPECIAL and CSI in the returned string are escaped.
  */
diff --git a/src/proto/getchar.pro b/src/proto/getchar.pro
index d1d78a2..c1eb1ab 100644
--- a/src/proto/getchar.pro
+++ b/src/proto/getchar.pro
@@ -1,6 +1,5 @@
 /* getchar.c */
 char_u *get_recorded(void);
-size_t get_recorded_len(void);
 char_u *get_inserted(void);
 size_t get_inserted_len(void);
 int stuff_empty(void);
diff --git a/src/register.c b/src/register.c
index 384c4d5..465bee3 100644
--- a/src/register.c
+++ b/src/register.c
@@ -28,7 +28,7 @@
 static int		y_append;	    // TRUE when appending
 static yankreg_T	*y_previous = NULL; // ptr to last written yankreg
 
-static int	stuff_yank(int, char_u *, size_t);
+static int	stuff_yank(int, char_u *);
 static void	put_reedit_in_typebuf(int silent);
 static int	put_in_typebuf(char_u *s, int esc, int colon, int silent);
 static int	yank_copy_line(struct block_def *bd, long y_idx, int exclude_trailing_space);
@@ -419,7 +419,7 @@
 	    old_y_previous = y_previous;
 	    old_y_current = y_current;
 
-	    retval = stuff_yank(regname, p, get_recorded_len());
+	    retval = stuff_yank(regname, p);
 
 	    y_previous = old_y_previous;
 	    y_current = old_y_current;
@@ -435,8 +435,10 @@
  * return FAIL for failure, OK otherwise
  */
     static int
-stuff_yank(int regname, char_u *p, size_t plen)
+stuff_yank(int regname, char_u *p)
 {
+    size_t  plen;
+
     // check for read-only register
     if (regname != 0 && !valid_yank_reg(regname, TRUE))
     {
@@ -449,6 +451,7 @@
 	return OK;
     }
 
+    plen = STRLEN(p);
     get_yank_register(regname, TRUE);
     if (y_append && y_current->y_array != NULL)
     {
diff --git a/src/version.c b/src/version.c
index 3456be5..b4c50fe 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1152,
+/**/
     1151,
 /**/
     1150,
