diff --git a/src/getchar.c b/src/getchar.c
index 5aa1b25..9810ed4 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -3273,7 +3273,7 @@
 	{
 	    if (abbrev)
 	    {
-		if (hash != 0)	/* there is only one abbreviation list */
+		if (hash > 0)	/* there is only one abbreviation list */
 		    break;
 		mpp = abbr_table;
 	    }
@@ -3595,7 +3595,7 @@
     {
 	if (abbr)
 	{
-	    if (hash)	    /* there is only one abbrlist */
+	    if (hash > 0)	/* there is only one abbrlist */
 		break;
 #ifdef FEAT_LOCALMAP
 	    if (local)
@@ -3734,9 +3734,10 @@
  * Also checks mappings local to the current buffer.
  */
     int
-map_to_exists(str, modechars)
+map_to_exists(str, modechars, abbr)
     char_u	*str;
     char_u	*modechars;
+    int		abbr;
 {
     int		mode = 0;
     char_u	*rhs;
@@ -3758,7 +3759,7 @@
     if (vim_strchr(modechars, 'c') != NULL)
 	mode |= CMDLINE;
 
-    retval = map_to_exists_mode(rhs, mode);
+    retval = map_to_exists_mode(rhs, mode, abbr);
     vim_free(buf);
 
     return retval;
@@ -3770,9 +3771,10 @@
  * Also checks mappings local to the current buffer.
  */
     int
-map_to_exists_mode(rhs, mode)
+map_to_exists_mode(rhs, mode, abbr)
     char_u	*rhs;
     int		mode;
+    int		abbr;
 {
     mapblock_T	*mp;
     int		hash;
@@ -3787,11 +3789,22 @@
 # endif
 	for (hash = 0; hash < 256; ++hash)
 	{
+	    if (abbr)
+	    {
+		if (hash > 0)		/* there is only one abbr list */
+		    break;
+#ifdef FEAT_LOCALMAP
+		if (expand_buffer)
+		    mp = curbuf->b_first_abbr;
+		else
+#endif
+		    mp = first_abbr;
+	    }
 # ifdef FEAT_LOCALMAP
-	    if (expand_buffer)
+	    else if (expand_buffer)
 		mp = curbuf->b_maphash[hash];
-	    else
 # endif
+	    else
 		mp = maphash[hash];
 	    for (; mp; mp = mp->m_next)
 	    {
@@ -3954,7 +3967,7 @@
 	{
 	    if (expand_isabbrev)
 	    {
-		if (hash)	/* only one abbrev list */
+		if (hash > 0)	/* only one abbrev list */
 		    break; /* for (hash) */
 		mp = first_abbr;
 	    }
@@ -4255,7 +4268,7 @@
 	{
 	    if (abbr)
 	    {
-		if (hash)	    /* there is only one abbr list */
+		if (hash > 0)		/* there is only one abbr list */
 		    break;
 #ifdef FEAT_LOCALMAP
 		if (buf != NULL)
@@ -4614,11 +4627,12 @@
  * NULL otherwise
  */
     char_u *
-check_map(keys, mode, exact, ign_mod)
+check_map(keys, mode, exact, ign_mod, abbr)
     char_u	*keys;
     int		mode;
     int		exact;		/* require exact match */
     int		ign_mod;	/* ignore preceding modifier */
+    int		abbr;		/* do abbreviations */
 {
     int		hash;
     int		len, minlen;
@@ -4637,11 +4651,22 @@
 	/* loop over all hash lists */
 	for (hash = 0; hash < 256; ++hash)
 	{
+	    if (abbr)
+	    {
+		if (hash > 0)		/* there is only one list. */
+		    break;
 #ifdef FEAT_LOCALMAP
-	    if (local)
-		mp = curbuf->b_maphash[hash];
-	    else
+		if (local)
+		    mp = curbuf->b_first_abbr;
+		else
 #endif
+		    mp = first_abbr;
+	    }
+#ifdef FEAT_LOCALMAP
+	    else if (local)
+		mp = curbuf->b_maphash[hash];
+#endif
+	    else
 		mp = maphash[hash];
 	    for ( ; mp != NULL; mp = mp->m_next)
 	    {
