diff --git a/ChangeLog b/ChangeLog
index 9f40d166893476678ace2ccb110d53fdc0e0cc7a..3cdc5375f1af1fc1d5322f422fccdd7f301b8d1f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -13,6 +13,23 @@ CVS code -
 	- Change translator-specific comments in global.c and prompt.c
 	  so that they show up in nano.pot, and make them all
 	  consistent. (Benno Schulenberg)
+	- Reduce USE_UTF8 to a static bool in chars.c, allow nano.c to
+	  set it via a function, and allow winio.c to read its value
+	  when needed.  New functions utf8_init() and using_utf8();
+	  changes to is_alnum_mbchar(), is_blank_mbchar(),
+	  is_cntrl_mbchar(), is_punct_mbchar(), control_mbrep(),
+	  mbrep(), mbwidth(), mb_cur_max(), make_mbchar(),
+	  parse_mbchar(), mbstrncasecmp(), mbstrcasestr(),
+	  mbrevstrcasestr(), mbstrnlen(), mbstrchr(), mbstrpbrk(),
+	  mbrevstrpbrk(), has_blank_mbchars(), is_valid_mbstring(),
+	  main(), display_string(), and do_credits(). (DLR)
+	- Add the ability to use bold text instead of reverse video
+	  text, via the -D/--boldtext command line option and the
+	  "boldtext" rcfile option.  Changes to do_help(), usage(),
+	  main(), update_statusbar_prompt(), do_yesno_prompt(),
+	  titlebar(), statusbar(), onekey(), edit_draw(),
+	  do_replace_highlight(), nano.1, nanorc.5, nano.texi, and
+	  nanorc.sample. (DLR, suggested by Benno Schulenberg)
 - files.c:
   open_file()
 	- Remove redundant wording in the error message when we try to
diff --git a/doc/man/nano.1 b/doc/man/nano.1
index 3d57f8a77e62376c3b76f3625b287d5a8c452d83..e1db56249d0d012bf0f86b3137cb481edaf2ee8d 100644
--- a/doc/man/nano.1
+++ b/doc/man/nano.1
@@ -7,7 +7,7 @@
 .\" warranty.
 .\"
 .\" $Id$
-.TH NANO 1 "version 1.3.11" "April 5, 2006"
+.TH NANO 1 "version 1.3.11" "April 12, 2006"
 .\" Please adjust this date whenever revising the manpage.
 .\"
 
@@ -55,6 +55,9 @@ filename suffixed with a ~.
 Set the directory where \fBnano\fP puts unique backup files if file
 backups are enabled.
 .TP
+.B \-D (\-\-boldtext)
+Use bold text instead of reverse video text.
+.TP
 .B \-E (\-\-tabstospaces)
 Convert typed tabs to spaces.
 .TP
diff --git a/doc/man/nanorc.5 b/doc/man/nanorc.5
index 1a381f848a503274d11f59edb27ec935d514a889..8271a6a10b9bb0ffdecc0bacbae9db5d30c11c8a 100644
--- a/doc/man/nanorc.5
+++ b/doc/man/nanorc.5
@@ -7,7 +7,7 @@
 .\" warranty.
 .\"
 .\" $Id$
-.TH NANORC 5 "version 1.3.11" "April 5, 2006"
+.TH NANORC 5 "version 1.3.11" "April 12, 2006"
 .\" Please adjust this date whenever revising the manpage.
 .\"
 .SH NAME
@@ -59,6 +59,9 @@ backups are enabled.
 .B set/unset backwards
 Do backwards searches by default.
 .TP
+.B set/unset boldtext
+Use bold text instead of reverse video text.
+.TP
 .B set brackets "\fIstring\fP"
 Set the characters treated as closing brackets.  They cannot contain
 blank characters.  Only closing punctuation, optionally followed by
diff --git a/doc/nanorc.sample b/doc/nanorc.sample
index 2dca1b327d5e491f0d3af68483643cc9cfcf3d11..d1de3e11c8c917331c651b197fa17923d9c34db5 100644
--- a/doc/nanorc.sample
+++ b/doc/nanorc.sample
@@ -26,6 +26,9 @@
 ## Do backwards searches by default.
 # set backwards
 
+## Use bold text instead of reverse video text.
+# set boldtext
+
 ## The characters treated as closing brackets.  They cannot contain
 ## blank characters.  Only closing punctuation, optionally followed by
 ## closing brackets, can end sentences.
@@ -355,7 +358,7 @@
 ## highlight possible errors and parameters
 # icolor brightwhite "^[[:space:]]*(set|unset|syntax|i?color).*$"
 ## set, unset and syntax
-# icolor cyan "^[[:space:]]*(set|unset)[[:space:]]+(autoindent|backup|backupdir|backwards|brackets|casesensitive|const|cut|fill|historylog|matchbrackets|morespace|mouse|multibuffer|noconvert|nofollow|nohelp|nonewlines|nowrap|operatingdir|preserve|punct|quickblank)\>" "^[[:space:]]*(set|unset)[[:space:]]+(quotestr|rebinddelete|rebindkeypad|regexp|smarthome|smooth|speller|suspend|tabsize|tabstospaces|tempfile|view|whitespace|wordbounds)\>"
+# icolor cyan "^[[:space:]]*(set|unset)[[:space:]]+(autoindent|backup|backupdir|backwards|boldtext|brackets|casesensitive|const|cut|fill|historylog|matchbrackets|morespace|mouse|multibuffer|noconvert|nofollow|nohelp|nonewlines|nowrap|operatingdir|preserve|punct)\>" "^[[:space:]]*(set|unset)[[:space:]]+(quickblank|quotestr|rebinddelete|rebindkeypad|regexp|smarthome|smooth|speller|suspend|tabsize|tabstospaces|tempfile|view|whitespace|wordbounds)\>"
 # icolor green "^[[:space:]]*(set|unset|syntax)\>"
 ## colors
 # icolor yellow "^[[:space:]]*i?color[[:space:]]*(bright)?(white|black|red|blue|green|yellow|magenta|cyan)?(,(white|black|red|blue|green|yellow|magenta|cyan))?\>"
diff --git a/doc/texinfo/nano.texi b/doc/texinfo/nano.texi
index 2e97124f367ea06b77604bd02fbcd0216a0f03a6..7f63e2fb8fe3845adf6037cfca48650daa453fd8 100644
--- a/doc/texinfo/nano.texi
+++ b/doc/texinfo/nano.texi
@@ -9,7 +9,7 @@
 @smallbook
 @set EDITION 0.1
 @set VERSION 1.3.10
-@set UPDATED 5 Apr 2006
+@set UPDATED 12 Apr 2006
 
 @dircategory Editors
 @direntry
@@ -129,6 +129,9 @@ filename suffixed with a ~.
 Set the directory where @code{nano} puts unique backup files if file
 backups are enabled.
 
+@item -D, --boldtext
+Use bold text instead of reverse video text.
+
 @item -E, --tabstospaces
 Convert typed tabs to spaces.
 
diff --git a/src/chars.c b/src/chars.c
index 41eaa11fb60dc30b0401e642c63d3a86a9aeaf17..6a872fada9499767b4e9c9b463413d937adb4da4 100644
--- a/src/chars.c
+++ b/src/chars.c
@@ -34,6 +34,8 @@
 #include <wctype.h>
 #endif
 
+static bool use_utf8 = FALSE;
+	/* Whether we've enabled UTF-8 support. */
 static const wchar_t bad_wchar = 0xFFFD;
 	/* If we get an invalid multibyte sequence, we treat it as
 	 * Unicode FFFD (Replacement Character), unless we're
@@ -41,6 +43,18 @@ static const wchar_t bad_wchar = 0xFFFD;
 	 * match to it. */
 static const char *bad_mbchar = "\xEF\xBF\xBD";
 static const int bad_mbchar_len = 3;
+
+/* Enable UTF-8 support. */
+void utf8_init(void)
+{
+    use_utf8 = TRUE;
+}
+
+/* Is UTF-8 support enabled? */
+bool using_utf8(void)
+{
+    return use_utf8;
+}
 #endif
 
 #ifndef HAVE_ISBLANK
@@ -72,7 +86,7 @@ bool is_alnum_mbchar(const char *c)
     assert(c != NULL);
 
 #ifdef ENABLE_UTF8
-    if (ISSET(USE_UTF8)) {
+    if (use_utf8) {
 	wchar_t wc;
 
 	if (mbtowc(&wc, c, MB_CUR_MAX) < 0) {
@@ -92,7 +106,7 @@ bool is_blank_mbchar(const char *c)
     assert(c != NULL);
 
 #ifdef ENABLE_UTF8
-    if (ISSET(USE_UTF8)) {
+    if (use_utf8) {
 	wchar_t wc;
 
 	if (mbtowc(&wc, c, MB_CUR_MAX) < 0) {
@@ -132,7 +146,7 @@ bool is_cntrl_mbchar(const char *c)
     assert(c != NULL);
 
 #ifdef ENABLE_UTF8
-    if (ISSET(USE_UTF8)) {
+    if (use_utf8) {
 	wchar_t wc;
 
 	if (mbtowc(&wc, c, MB_CUR_MAX) < 0) {
@@ -152,7 +166,7 @@ bool is_punct_mbchar(const char *c)
     assert(c != NULL);
 
 #ifdef ENABLE_UTF8
-    if (ISSET(USE_UTF8)) {
+    if (use_utf8) {
 	wchar_t wc;
 	int c_mb_len = mbtowc(&wc, c, MB_CUR_MAX);
 
@@ -219,7 +233,7 @@ char *control_mbrep(const char *c, char *crep, int *crep_len)
     assert(c != NULL && crep != NULL && crep_len != NULL);
 
 #ifdef ENABLE_UTF8
-    if (ISSET(USE_UTF8)) {
+    if (use_utf8) {
 	wchar_t wc;
 
 	if (mbtowc(&wc, c, MB_CUR_MAX) < 0) {
@@ -253,7 +267,7 @@ char *mbrep(const char *c, char *crep, int *crep_len)
     assert(c != NULL && crep != NULL && crep_len != NULL);
 
 #ifdef ENABLE_UTF8
-    if (ISSET(USE_UTF8)) {
+    if (use_utf8) {
 	wchar_t wc;
 
 	/* Reject invalid Unicode characters. */
@@ -286,7 +300,7 @@ int mbwidth(const char *c)
     assert(c != NULL);
 
 #ifdef ENABLE_UTF8
-    if (ISSET(USE_UTF8)) {
+    if (use_utf8) {
 	wchar_t wc;
 	int width;
 
@@ -313,7 +327,7 @@ int mb_cur_max(void)
 {
     return
 #ifdef ENABLE_UTF8
-	ISSET(USE_UTF8) ? MB_CUR_MAX :
+	use_utf8 ? MB_CUR_MAX :
 #endif
 	1;
 }
@@ -330,7 +344,7 @@ char *make_mbchar(long chr, int *chr_mb_len)
     assert(chr_mb_len != NULL);
 
 #ifdef ENABLE_UTF8
-    if (ISSET(USE_UTF8)) {
+    if (use_utf8) {
 	chr_mb = charalloc(MB_CUR_MAX);
 	*chr_mb_len = wctomb(chr_mb, (wchar_t)chr);
 
@@ -361,7 +375,7 @@ int parse_mbchar(const char *buf, char *chr, size_t *col)
     assert(buf != NULL);
 
 #ifdef ENABLE_UTF8
-    if (ISSET(USE_UTF8)) {
+    if (use_utf8) {
 	/* Get the number of bytes in the multibyte character. */
 	buf_mb_len = mblen(buf, MB_CUR_MAX);
 
@@ -505,7 +519,7 @@ int nstrncasecmp(const char *s1, const char *s2, size_t n)
 int mbstrncasecmp(const char *s1, const char *s2, size_t n)
 {
 #ifdef ENABLE_UTF8
-    if (ISSET(USE_UTF8)) {
+    if (use_utf8) {
 	char *s1_mb = charalloc(MB_CUR_MAX);
 	char *s2_mb = charalloc(MB_CUR_MAX);
 	wchar_t ws1, ws2;
@@ -598,7 +612,7 @@ const char *nstrcasestr(const char *haystack, const char *needle)
 const char *mbstrcasestr(const char *haystack, const char *needle)
 {
 #ifdef ENABLE_UTF8
-    if (ISSET(USE_UTF8)) {
+    if (use_utf8) {
 	char *r_mb = charalloc(MB_CUR_MAX);
 	char *q_mb = charalloc(MB_CUR_MAX);
 	wchar_t wr, wq;
@@ -704,7 +718,7 @@ const char *mbrevstrcasestr(const char *haystack, const char *needle,
 	const char *rev_start)
 {
 #ifdef ENABLE_UTF8
-    if (ISSET(USE_UTF8)) {
+    if (use_utf8) {
 	char *r_mb = charalloc(MB_CUR_MAX);
 	char *q_mb = charalloc(MB_CUR_MAX);
 	wchar_t wr, wq;
@@ -792,7 +806,7 @@ size_t mbstrnlen(const char *s, size_t maxlen)
     assert(s != NULL);
 
 #ifdef ENABLE_UTF8
-    if (ISSET(USE_UTF8)) {
+    if (use_utf8) {
 	size_t n = 0;
 	int s_mb_len;
 
@@ -820,7 +834,7 @@ char *mbstrchr(const char *s, const char *c)
     assert(s != NULL && c != NULL);
 
 #ifdef ENABLE_UTF8
-    if (ISSET(USE_UTF8)) {
+    if (use_utf8) {
 	bool bad_s_mb = FALSE, bad_c_mb = FALSE;
 	char *s_mb = charalloc(MB_CUR_MAX);
 	const char *q = s;
@@ -868,7 +882,7 @@ char *mbstrpbrk(const char *s, const char *accept)
     assert(s != NULL && accept != NULL);
 
 #ifdef ENABLE_UTF8
-    if (ISSET(USE_UTF8)) {
+    if (use_utf8) {
 	while (*s != '\0') {
 	    if (mbstrchr(accept, s) != NULL)
 		return (char *)s;
@@ -909,7 +923,7 @@ char *mbrevstrpbrk(const char *s, const char *accept, const char
     assert(s != NULL && accept != NULL && rev_start != NULL);
 
 #ifdef ENABLE_UTF8
-    if (ISSET(USE_UTF8)) {
+    if (use_utf8) {
 	bool begin_line = FALSE;
 
 	while (!begin_line) {
@@ -954,7 +968,7 @@ bool has_blank_mbchars(const char *s)
     assert(s != NULL);
 
 #ifdef ENABLE_UTF8
-    if (ISSET(USE_UTF8)) {
+    if (use_utf8) {
 	char *chr_mb = charalloc(MB_CUR_MAX);
 	bool retval = FALSE;
 
@@ -999,7 +1013,7 @@ bool is_valid_mbstring(const char *s)
 
     return 
 #ifdef ENABLE_UTF8
-	ISSET(USE_UTF8) ?
+	use_utf8 ?
 	(mbstowcs(NULL, s, 0) != (size_t)-1) :
 #endif
 
diff --git a/src/global.c b/src/global.c
index 37a89db5d7e65af76a5b21de84772ab0f552dc50..7ae6cfa26b1edf8032e3c16e7750a672b8a4ffa5 100644
--- a/src/global.c
+++ b/src/global.c
@@ -197,6 +197,8 @@ regmatch_t regmatches[10];
 	 * maximum, used in regular expression searches. */
 #endif
 
+int reverse_attr = A_REVERSE;
+	/* The curses attribute we use for reverse video. */
 bool curses_ended = FALSE;
 	/* Whether endwin() has ended curses mode and statusbar()
 	 * should hence write to stderr instead of displaying on the
diff --git a/src/help.c b/src/help.c
index 0d0c2c8b4646ba330499ed39ec7a50b9ae27f735..6fd21388d5dcc2aedfee6f07c2a32f73369189bc 100644
--- a/src/help.c
+++ b/src/help.c
@@ -54,7 +54,7 @@ void do_help(void (*refresh_func)(void))
 
     curs_set(0);
     blank_edit();
-    wattroff(bottomwin, A_REVERSE);
+    wattroff(bottomwin, reverse_attr);
     blank_statusbar();
 
     /* Set help_text as the string to display. */
diff --git a/src/nano.c b/src/nano.c
index 1c923999a385de2cc58d928dde34c7d0991d3f22..02bd27d24bf77d96201eed61394fdf7f13473f0c 100644
--- a/src/nano.c
+++ b/src/nano.c
@@ -734,6 +734,8 @@ void usage(void)
     print1opt("-B", "--backup", N_("Save backups of existing files"));
     print1opt(_("-C [dir]"), _("--backupdir=[dir]"),
 	N_("Directory for saving unique backup files"));
+    print1opt("-D", "--boldtext",
+	N_("Use bold instead of reverse video text"));
     print1opt("-E", "--tabstospaces",
 	N_("Convert typed tabs to spaces"));
 #endif
@@ -1585,6 +1587,7 @@ int main(int argc, char **argv)
 #ifdef HAVE_GETOPT_LONG
     const struct option long_options[] = {
 	{"help", 0, NULL, 'h'},
+	{"boldtext", 0, NULL, 'D'},
 #ifdef ENABLE_MULTIBUFFER
 	{"multibuffer", 0, NULL, 'F'},
 #endif
@@ -1651,10 +1654,10 @@ int main(int argc, char **argv)
 
 	if (locale != NULL && (strcasestr(locale, "UTF8") != NULL ||
 		strcasestr(locale, "UTF-8") != NULL)) {
-	    SET(USE_UTF8);
 #ifdef USE_SLANG
 	    SLutf8_enable(TRUE);
 #endif
+	    utf8_init();
 	}
     }
 #else
@@ -1676,11 +1679,11 @@ int main(int argc, char **argv)
     while ((optchr =
 #ifdef HAVE_GETOPT_LONG
 	getopt_long(argc, argv,
-		"h?ABC:EFHIKLNOQ:RST:UVWY:abcdefgijklmo:pr:s:tvwxz",
+		"h?ABC:DEFHIKLNOQ:RST:UVWY:abcdefgijklmo:pr:s:tvwxz",
 		long_options, NULL)
 #else
 	getopt(argc, argv,
-		"h?ABC:EFHIKLNOQ:RST:UVWY:abcdefgijklmo:pr:s:tvwxz")
+		"h?ABC:DEFHIKLNOQ:RST:UVWY:abcdefgijklmo:pr:s:tvwxz")
 #endif
 		) != -1) {
 	switch (optchr) {
@@ -1702,6 +1705,11 @@ int main(int argc, char **argv)
 	    case 'C':
 		backup_dir = mallocstrcpy(backup_dir, optarg);
 		break;
+#endif
+	    case 'D':
+		SET(BOLD_TEXT);
+		break;
+#ifndef NANO_TINY
 	    case 'E':
 		SET(TABS_TO_SPACES);
 		break;
@@ -1930,7 +1938,13 @@ int main(int argc, char **argv)
 #endif
 #endif /* ENABLE_NANORC */
 
+    /* If we're using bold text instead of reverse video text, set it up
+     * now. */
+    if (ISSET(BOLD_TEXT))
+	reverse_attr = A_BOLD;
+
 #ifndef NANO_TINY
+    /* Set up the search/replace history. */
     history_init();
 #ifdef ENABLE_NANORC
     if (!ISSET(NO_RCFILE) && ISSET(HISTORYLOG))
diff --git a/src/nano.h b/src/nano.h
index 829b8473543eb83f3fcaf3ee8525afcf9d3df4bf..86a61c065acdb57198175b63bbd17ceaa39761bc 100644
--- a/src/nano.h
+++ b/src/nano.h
@@ -370,7 +370,7 @@ typedef struct rcoption {
 #define QUICK_BLANK		(1<<28)
 #define WORD_BOUNDS		(1<<29)
 #define NO_NEWLINES		(1<<30)
-#define USE_UTF8		(1<<31)
+#define BOLD_TEXT		(1<<31)
 
 /* Control key sequences.  Changing these would be very, very bad. */
 #define NANO_CONTROL_SPACE 0
diff --git a/src/prompt.c b/src/prompt.c
index 276cf90548550aa7587b25bc6eb17b84c4656b45..ce3edcbbbf5d92f1873c3a70825c7d970cee988b 100644
--- a/src/prompt.c
+++ b/src/prompt.c
@@ -857,7 +857,7 @@ void update_statusbar_line(const char *curranswer, size_t index)
     index = strnlenpt(curranswer, index);
     page_start = get_statusbar_page_start(start_col, start_col + index);
 
-    wattron(bottomwin, A_REVERSE);
+    wattron(bottomwin, reverse_attr);
 
     blank_statusbar();
 
@@ -872,7 +872,7 @@ void update_statusbar_line(const char *curranswer, size_t index)
 
     reset_statusbar_cursor();
 
-    wattroff(bottomwin, A_REVERSE);
+    wattroff(bottomwin, reverse_attr);
 }
 
 /* Put the cursor in the statusbar prompt at statusbar_x. */
@@ -1247,12 +1247,12 @@ int do_yesno_prompt(bool all, const char *msg)
 	onekey("^C", _("Cancel"), width);
     }
 
-    wattron(bottomwin, A_REVERSE);
+    wattron(bottomwin, reverse_attr);
 
     blank_statusbar();
     mvwaddnstr(bottomwin, 0, 0, msg, actual_x(msg, COLS - 1));
 
-    wattroff(bottomwin, A_REVERSE);
+    wattroff(bottomwin, reverse_attr);
 
     /* Refresh the edit window and the statusbar before getting
      * input. */
diff --git a/src/proto.h b/src/proto.h
index 78caf80a6b095a33807004b4b979fc73f6100190..d6724726e10e64d5606f21c31e0d1b1a1581f75c 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -132,6 +132,7 @@ extern regex_t search_regexp;
 extern regmatch_t regmatches[10];
 #endif
 
+extern int reverse_attr;
 extern bool curses_ended;
 
 extern char *homedir;
@@ -155,6 +156,10 @@ void striponedir(char *path);
 #endif
 
 /* Public functions in chars.c. */
+#ifdef ENABLE_UTF8
+void utf8_init(void);
+bool using_utf8(void);
+#endif
 #ifndef HAVE_ISBLANK
 bool nisblank(int c);
 #endif
diff --git a/src/rcfile.c b/src/rcfile.c
index c988a90586901067c296faaf653ff9d4bc7cd162..97762ecc60e70d628a36eb8ddb0fd1010851aa40 100644
--- a/src/rcfile.c
+++ b/src/rcfile.c
@@ -33,6 +33,7 @@
 #ifdef ENABLE_NANORC
 
 const static rcoption rcopts[] = {
+    {"boldtext", BOLD_TEXT},
 #ifndef DISABLE_JUSTIFY
     {"brackets", 0},
 #endif
diff --git a/src/winio.c b/src/winio.c
index f2f98ddb275447fe60cc95eea969461fbe83ab17..d922de2081917655b8e32125153a689392295c5d 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -1857,7 +1857,7 @@ char *display_string(const char *buf, size_t start_col, size_t len, bool
 	    }
 	}
 #ifdef ENABLE_UTF8
-	else if (ISSET(USE_UTF8) && mbwidth(buf_mb) > 1) {
+	else if (using_utf8() && mbwidth(buf_mb) > 1) {
 	    converted[index++] = ' ';
 	    start_col++;
 
@@ -1992,7 +1992,7 @@ void titlebar(const char *path)
 
     assert(path != NULL || openfile->filename != NULL);
 
-    wattron(topwin, A_REVERSE);
+    wattron(topwin, reverse_attr);
     blank_titlebar();
 
     /* space has to be at least 4: two spaces before the version message,
@@ -2117,7 +2117,7 @@ void titlebar(const char *path)
 	}
     }
 
-    wattroff(topwin, A_REVERSE);
+    wattroff(topwin, reverse_attr);
 
     wnoutrefresh(topwin);
     reset_cursor();
@@ -2176,12 +2176,12 @@ void statusbar(const char *msg, ...)
     start_x = (COLS - foo_len - 4) / 2;
 
     wmove(bottomwin, 0, start_x);
-    wattron(bottomwin, A_REVERSE);
+    wattron(bottomwin, reverse_attr);
     waddstr(bottomwin, "[ ");
     waddstr(bottomwin, foo);
     free(foo);
     waddstr(bottomwin, " ]");
-    wattroff(bottomwin, A_REVERSE);
+    wattroff(bottomwin, reverse_attr);
     wnoutrefresh(bottomwin);
     reset_cursor();
     wnoutrefresh(edit);
@@ -2266,9 +2266,9 @@ void onekey(const char *keystroke, const char *desc, size_t len)
 
     assert(keystroke != NULL && desc != NULL);
 
-    wattron(bottomwin, A_REVERSE);
+    wattron(bottomwin, reverse_attr);
     waddnstr(bottomwin, keystroke, actual_x(keystroke, len));
-    wattroff(bottomwin, A_REVERSE);
+    wattroff(bottomwin, reverse_attr);
 
     if (len > keystroke_len)
 	len -= keystroke_len;
@@ -2626,10 +2626,10 @@ void edit_draw(const filestruct *fileptr, const char *converted, int
 	    if (paintlen > 0)
 		paintlen = actual_x(converted + index, paintlen);
 
-	    wattron(edit, A_REVERSE);
+	    wattron(edit, reverse_attr);
 	    mvwaddnstr(edit, line, x_start, converted + index,
 		paintlen);
-	    wattroff(edit, A_REVERSE);
+	    wattroff(edit, reverse_attr);
 	}
     }
 #endif /* !NANO_TINY */
@@ -3052,7 +3052,7 @@ void do_replace_highlight(bool highlight, const char *word)
     reset_cursor();
 
     if (highlight)
-	wattron(edit, A_REVERSE);
+	wattron(edit, reverse_attr);
 
 #ifdef HAVE_REGEX_H
     /* This is so we can show zero-length regexes. */
@@ -3066,7 +3066,7 @@ void do_replace_highlight(bool highlight, const char *word)
 	waddch(edit, '$');
 
     if (highlight)
-	wattroff(edit, A_REVERSE);
+	wattroff(edit, reverse_attr);
 }
 
 #ifdef NANO_EXTRA
@@ -3154,7 +3154,7 @@ void do_credits(void)
      * Small Letter O with Diaresis) if applicable. */
     credits[15] =
 #ifdef ENABLE_UTF8
-	 ISSET(USE_UTF8) ? "Florian K\xC3\xB6nig" :
+	 using_utf8() ? "Florian K\xC3\xB6nig" :
 #endif
 	"Florian K\xF6nig";