diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
index 6135657..40d7712 100644
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -5504,7 +5504,6 @@
     int		should_need_pango = FALSE;
     int		slen;
     int		is_ligature;
-    int		next_is_ligature;
     int		is_utf8;
     char_u	backup_ch;
 
@@ -5564,8 +5563,16 @@
 		    // substrings
     byte_sum = 0;
     cs = s;
-    // look ahead, 0=ascii 1=unicode/ligatures
-    needs_pango = ((*cs & 0x80) || gui.ligatures_map[*cs]);
+    // First char decides starting needs_pango mode, 0=ascii 1=utf8/ligatures.
+    // Even if it is ligature char, two chars or more make ligature.
+    // Ascii followed by utf8 is also going trough pango.
+    is_utf8 = (*cs & 0x80);
+    is_ligature = gui.ligatures_map[*cs] && (len > 1);
+    if (is_ligature)
+	is_ligature = gui.ligatures_map[*(cs + 1)];
+    if (!is_utf8 && len > 1)
+	is_utf8 = (*(cs + 1) & 0x80) != 0;
+    needs_pango = is_utf8 || is_ligature;
 
     // split string into ascii and non-ascii (ligatures + utf-8) substrings,
     // print glyphs or use Pango
@@ -5579,17 +5586,15 @@
 	    if (is_ligature && !needs_pango)
 	    {
 		if ((slen + 1) < (len - byte_sum))
-		{
-		    next_is_ligature = gui.ligatures_map[*(cs + slen + 1)];
-		    if (!next_is_ligature)
-			is_ligature = 0;
-		}
+		    is_ligature = gui.ligatures_map[*(cs + slen + 1)];
 		else
-		{
 		    is_ligature = 0;
-		}
 	    }
 	    is_utf8 = *(cs + slen) & 0x80;
+	    // ascii followed by utf8 could be combining
+	    // if so send it trough pango
+	    if ((!is_utf8) && ((slen + 1) < (len - byte_sum)))
+		is_utf8 = (*(cs + slen + 1) & 0x80);
 	    should_need_pango = (is_ligature || is_utf8);
 	    if (needs_pango != should_need_pango) // mode switch
 		break;
@@ -5599,7 +5604,7 @@
 		{
 		    slen++; // ligature char by char
 		}
-		else
+		else if (is_utf8)
 		{
 		    if ((*(cs + slen) & 0xC0) == 0x80)
 		    {
@@ -5633,6 +5638,10 @@
 			slen++;
 		    }
 		}
+		else
+		{
+		    slen++;
+		}
 	    }
 	    else
 	    {
