diff --git a/src/chars.c b/src/chars.c
index 9e839036df9641773388c891e6f684541599e2fb..02c6fa3153ccda8982e4600545dd7927cfef24e5 100644
--- a/src/chars.c
+++ b/src/chars.c
@@ -217,13 +217,12 @@ bool is_word_mbchar(const char *c, bool allow_punct)
 	FALSE);
 }
 
-/* c is a control character.  It displays as ^@, ^?, or ^[ch], where ch
- * is (c + 64).  We return that character. */
+/* Return the visible representation of control character c. */
 char control_rep(const signed char c)
 {
     assert(is_cntrl_char(c));
 
-    /* Treat newlines embedded in a line as encoded nulls. */
+    /* An embedded newline is an encoded null. */
     if (c == '\n')
 	return '@';
     else if (c == NANO_CONTROL_8)
@@ -236,23 +235,6 @@ char control_rep(const signed char c)
 	return c + 64;
 }
 
-#ifdef ENABLE_UTF8
-/* c is a wide control character.  It displays as ^@, ^?, or ^[ch],
- * where ch is (c + 64).  We return that wide character. */
-wchar_t control_wrep(wchar_t wc)
-{
-    assert(is_cntrl_wchar(wc));
-
-    /* Treat newlines embedded in a line as encoded nulls. */
-    if (wc == '\n')
-	return '@';
-    else if (wc == NANO_CONTROL_8)
-	return '?';
-    else
-	return wc + 64;
-}
-#endif
-
 /* Return the visible representation of multibyte control character c. */
 char control_mbrep(const char *c)
 {
diff --git a/src/proto.h b/src/proto.h
index 14bb0405c168b2ec2414d38f2b163e20da0a535b..806ba85830ff6ed40ab98374d24b62069b59efc7 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -190,9 +190,6 @@ bool is_cntrl_mbchar(const char *c);
 bool is_punct_mbchar(const char *c);
 bool is_word_mbchar(const char *c, bool allow_punct);
 char control_rep(const signed char c);
-#ifdef ENABLE_UTF8
-wchar_t control_wrep(wchar_t wc);
-#endif
 char control_mbrep(const char *c);
 char *mbrep(const char *c, char *crep, int *crep_len);
 int mbwidth(const char *c);