diff --git a/src/conio/cterm.c b/src/conio/cterm.c
index 72a979449e7cb608e0e3f121e2c10c8d7f145aaf..6e5656b3de958882631d36b934a82f75c2217d99 100644
--- a/src/conio/cterm.c
+++ b/src/conio/cterm.c
@@ -2378,6 +2378,11 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int *
 										attr2palette(cterm->attr, NULL, &cterm->bg_color);
 									break;
 								case 7:
+									j=cterm->attr&112;
+									cterm->attr = (cterm->attr << 4) & 0x70;
+									cterm->attr |= j>>4;
+									attr2palette(cterm->attr, &cterm->fg_color, &cterm->bg_color);
+									break;
 								case 8:
 									j=cterm->attr&112;
 									cterm->attr&=112;