diff --git a/src/charset.c b/src/charset.c
index db0c146..10aa2e8 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -835,6 +835,16 @@
 }
 
 /*
+ * Like vim_isIDc() but not using the 'isident' option: letters, numbers and
+ * underscore.
+ */
+    int
+vim_isNormalIDc(int c)
+{
+    return ASCII_ISALNUM(c) || c == '_';
+}
+
+/*
  * return TRUE if 'c' is a keyword character: Letters and characters from
  * 'iskeyword' option for the current buffer.
  * For multi-byte characters mb_get_class() is used (builtin rules).
diff --git a/src/misc2.c b/src/misc2.c
index 90b8b58..08e6ed9 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -2826,7 +2826,7 @@
 
     // Find end of modifier list
     last_dash = src;
-    for (bp = src + 1; *bp == '-' || vim_isIDc(*bp); bp++)
+    for (bp = src + 1; *bp == '-' || vim_isNormalIDc(*bp); bp++)
     {
 	if (*bp == '-')
 	{
@@ -3121,10 +3121,10 @@
 	for (i = 0; key_names_table[i].name != NULL; i++)
 	{
 	    table_name = key_names_table[i].name;
-	    for (j = 0; vim_isIDc(name[j]) && table_name[j] != NUL; j++)
+	    for (j = 0; vim_isNormalIDc(name[j]) && table_name[j] != NUL; j++)
 		if (TOLOWER_ASC(table_name[j]) != TOLOWER_ASC(name[j]))
 		    break;
-	    if (!vim_isIDc(name[j]) && table_name[j] == NUL)
+	    if (!vim_isNormalIDc(name[j]) && table_name[j] == NUL)
 		return key_names_table[i].key;
 	}
     return 0;
diff --git a/src/proto/charset.pro b/src/proto/charset.pro
index d364b8e..883f393 100644
--- a/src/proto/charset.pro
+++ b/src/proto/charset.pro
@@ -19,6 +19,7 @@
 int linetabsize_col(int startcol, char_u *s);
 int win_linetabsize(win_T *wp, char_u *line, colnr_T len);
 int vim_isIDc(int c);
+int vim_isNormalIDc(int c);
 int vim_iswordc(int c);
 int vim_iswordc_buf(int c, buf_T *buf);
 int vim_iswordp(char_u *p);
diff --git a/src/testdir/test_mapping.vim b/src/testdir/test_mapping.vim
index d7e4caa..c93562b 100644
--- a/src/testdir/test_mapping.vim
+++ b/src/testdir/test_mapping.vim
@@ -445,9 +445,12 @@
   " Remove default mappings
   imapclear
 
-  inoremap <C-M> CtrlM
+  " reset 'isident' to check it isn't used
+  set isident=
+  inoremap <C-m> CtrlM
   inoremap <A-S> AltS
   inoremap <S-/> ShiftSlash
+  set isident&
   call assert_equal([
 	\ 'i  <S-/>       * ShiftSlash',
 	\ 'i  <M-S>       * AltS',
diff --git a/src/version.c b/src/version.c
index 0abdbe5..f041987 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2728,
+/**/
     2727,
 /**/
     2726,
