 +  int len;
 +
 +  /* only add color markers if we are operating on main index entries. */
-+  if (!(flags & M_FORMAT_INDEX))
++  if (!(flags & MUTT_FORMAT_INDEX))
 +    return 0;
 +
 +  if (color == MT_COLOR_INDEX) { /* buf might be uninitialized other cases */

   { NULL,		0 }
 };
 
@@ -365,6 +375,51 @@
   return _mutt_parse_uncolor(buf, s, data, err, 0);
 }
 

 {
   wchar_t wc;
   size_t k;
@@ -162,6 +187,18 @@
       }
       if (do_color) ATTRSET(attr);
     }
+    else if(*s == MUTT_SPECIAL_INDEX)
+    {
+      s++;
+      if (do_color) {
