diff --git a/src/getchar.c b/src/getchar.c
index ec5ae87..d4066c2 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -4539,7 +4539,7 @@
     buf_T	*buf;	    /* buffer for local mappings or NULL */
 {
     mapblock_T	*mp;
-    char_u	c1, c2;
+    char_u	c1, c2, c3;
     char_u	*p;
     char	*cmd;
     int		abbr;
@@ -4592,8 +4592,12 @@
 		if (*p != NUL)
 		    continue;
 
+		/* It's possible to create a mapping and then ":unmap" certain
+		 * modes.  We recreate this here by mapping the individual
+		 * modes, which requires up to three of them. */
 		c1 = NUL;
 		c2 = NUL;
+		c3 = NUL;
 		if (abbr)
 		    cmd = "abbr";
 		else
@@ -4605,9 +4609,6 @@
 		    case NORMAL:
 			c1 = 'n';
 			break;
-		    case VISUAL + SELECTMODE:
-			c1 = 'v';
-			break;
 		    case VISUAL:
 			c1 = 'x';
 			break;
@@ -4617,18 +4618,47 @@
 		    case OP_PENDING:
 			c1 = 'o';
 			break;
+		    case NORMAL + VISUAL:
+			c1 = 'n';
+			c2 = 'x';
+			break;
+		    case NORMAL + SELECTMODE:
+			c1 = 'n';
+			c2 = 's';
+			break;
+		    case NORMAL + OP_PENDING:
+			c1 = 'n';
+			c2 = 'o';
+			break;
+		    case VISUAL + SELECTMODE:
+			c1 = 'v';
+			break;
+		    case VISUAL + OP_PENDING:
+			c1 = 'x';
+			c2 = 'o';
+			break;
+		    case SELECTMODE + OP_PENDING:
+			c1 = 's';
+			c2 = 'o';
+			break;
 		    case NORMAL + VISUAL + SELECTMODE:
 			c1 = 'n';
 			c2 = 'v';
 			break;
+		    case NORMAL + VISUAL + OP_PENDING:
+			c1 = 'n';
+			c2 = 'x';
+			c3 = 'o';
+			break;
+		    case NORMAL + SELECTMODE + OP_PENDING:
+			c1 = 'n';
+			c2 = 's';
+			c3 = 'o';
+			break;
 		    case VISUAL + SELECTMODE + OP_PENDING:
 			c1 = 'v';
 			c2 = 'o';
 			break;
-		    case NORMAL + OP_PENDING:
-			c1 = 'n';
-			c2 = 'o';
-			break;
 		    case CMDLINE + INSERT:
 			if (!abbr)
 			    cmd = "map!";
@@ -4646,7 +4676,7 @@
 			EMSG(_("E228: makemap: Illegal mode"));
 			return FAIL;
 		}
-		do	/* may do this twice if c2 is set */
+		do	/* do this twice if c2 is set, 3 times with c3 */
 		{
 		    /* When outputting <> form, need to make sure that 'cpo'
 		     * is set to the Vim default. */
@@ -4693,9 +4723,9 @@
 			    || put_eol(fd) < 0)
 			return FAIL;
 		    c1 = c2;
-		    c2 = NUL;
-		}
-		while (c1);
+		    c2 = c3;
+		    c3 = NUL;
+		} while (c1 != NUL);
 	    }
 	}
 
