diff --git a/src/getchar.c b/src/getchar.c
index 54222ec..29323fa 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -3157,6 +3157,7 @@
 	int	save_m_silent;
 	char_u	*save_m_keys;
 	char_u	*save_alt_m_keys;
+	int	save_alt_m_keylen;
 #else
 # define save_m_noremap mp->m_noremap
 # define save_m_silent mp->m_silent
@@ -3206,6 +3207,7 @@
 	save_m_silent = mp->m_silent;
 	save_m_keys = NULL;  // only saved when needed
 	save_alt_m_keys = NULL;  // only saved when needed
+	save_alt_m_keylen = mp->m_alt != NULL ? mp->m_alt->m_keylen : 0;
 
 	/*
 	 * Handle ":map <expr>": evaluate the {rhs} as an expression.  Also
@@ -3222,9 +3224,10 @@
 	    vgetc_busy = 0;
 	    may_garbage_collect = FALSE;
 
-	    save_m_keys = vim_strsave(mp->m_keys);
+	    save_m_keys = vim_strnsave(mp->m_keys, (size_t)mp->m_keylen);
 	    save_alt_m_keys = mp->m_alt != NULL
-				    ? vim_strsave(mp->m_alt->m_keys) : NULL;
+				    ? vim_strnsave(mp->m_alt->m_keys,
+					     (size_t)save_alt_m_keylen) : NULL;
 	    map_str = eval_map_expr(mp, NUL);
 
 	    // The mapping may do anything, but we expect it to take care of
@@ -3287,12 +3290,12 @@
 			&& STRNCMP(map_str, save_m_keys, (size_t)keylen) == 0)
 		|| (save_alt_m_keys != NULL
 			&& STRNCMP(map_str, save_alt_m_keys,
-					    STRLEN(save_alt_m_keys)) == 0) :
+					    (size_t)save_alt_m_keylen) == 0) :
 #endif
 		STRNCMP(map_str, mp->m_keys, (size_t)keylen) == 0
 		|| (mp->m_alt != NULL
 			&& STRNCMP(map_str, mp->m_alt->m_keys,
-					    STRLEN(mp->m_alt->m_keys)) == 0))
+					    (size_t)mp->m_alt->m_keylen) == 0))
 		noremap = REMAP_SKIP;
 	    else
 		noremap = REMAP_YES;
