diff --git a/ChangeLog b/ChangeLog
index ffd1a40dadc010117d3556beaebc2ba68cb3a9ce..bc38b72b7caf2dd028fe536d4d76fcbb7dee366f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,15 +1,15 @@
 CVS code -
-- General
-	- New flag RELATIVECHARS to show column positino relative to
-	  the current line instead of the current file.  New flag 
-	  -C, --relative, changes to do_cursorpos().
 - Makefile.am:
 	- Add SYSCONFDIR to DEFS, so we can have an /etc/nanorc.
 	- Change localedir line to 1.0's version.
-- rcfile.c
+- rcfile.c:
   parse_next_rege()
 	- Allow " symbol to be in regex without leading \ by checking
 	  for *ptr+1 is not the end of the regex.
+- winio.c:
+  do_cursorpos()
+	- Rewritten to show col place as well as charcter place, without
+	  needing an entirely separate flag.
 - utils.c:
   strstrwrapper()
 	- NANO_SMALL test was backwards (Ken Tyler).
diff --git a/nano.c b/nano.c
index c93cde08e8f595281f365bb1eb827beb9ccf257a..61f4564280d9603d3daad4cece6355df4731b482 100644
--- a/nano.c
+++ b/nano.c
@@ -409,9 +409,6 @@ void usage(void)
     printf(_("Usage: nano [GNU long option] [option] +LINE <file>\n\n"));
     printf(_("Option		Long option		Meaning\n"));
 
-    printf
-	(_
-	 (" -C 		--relative		Show relative col position with ^C\n"));
 #ifndef NANO_SMALL
     printf
 	(_
@@ -492,7 +489,6 @@ void usage(void)
 #else
     printf(_("Usage: nano [option] +LINE <file>\n\n"));
     printf(_("Option		Meaning\n"));
-    printf(_(" -C 		Show relative col position with ^C\n"));
 #ifndef NANO_SMALL
     printf(_(" -D 		Write file in DOS format\n"));
 #endif
@@ -2740,7 +2736,6 @@ int main(int argc, char *argv[])
 	{"smooth", 0, 0, 'S'},
 #endif
 	{"keypad", 0, 0, 'K'},
-	{"relative", 0, 0, 'C'},
 	{0, 0, 0, 0}
     };
 #endif
@@ -2761,18 +2756,15 @@ int main(int argc, char *argv[])
 #endif /* ENABLE_NANORC */
 
 #ifdef HAVE_GETOPT_LONG
-    while ((optchr = getopt_long(argc, argv, "h?CDFKMRST:Vabcefgijklmo:pr:s:tvwxz",
+    while ((optchr = getopt_long(argc, argv, "h?DFKMRST:Vabcefgijklmo:pr:s:tvwxz",
 				 long_options, &option_index)) != EOF) {
 #else
     while ((optchr =
-	    getopt(argc, argv, "h?CDFKMRST:Vabcefgijklmo:pr:s:tvwxz")) != EOF) {
+	    getopt(argc, argv, "h?DFKMRST:Vabcefgijklmo:pr:s:tvwxz")) != EOF) {
 #endif
 
 	switch (optchr) {
 
-	case 'C':
-	    SET(RELATIVECHARS);
-	    break;
 #ifndef NANO_SMALL
 	case 'D':
 	    SET(DOS_FILE);
diff --git a/winio.c b/winio.c
index e685e2d8d52bf5f0618da39dc264d1ad2f88b224..9d7826bdeb8875ddbf783b999b5d27594c8e86a5 100644
--- a/winio.c
+++ b/winio.c
@@ -1585,7 +1585,7 @@ void previous_line(void)
 int do_cursorpos(int constant)
 {
     filestruct *fileptr;
-    float linepct = 0.0, bytepct = 0.0;
+    float linepct = 0.0, bytepct = 0.0, colpct = 0.0;
     long i = 0, j = 0;
     static long old_i = -1, old_totsize = -1;
 
@@ -1598,32 +1598,24 @@ int do_cursorpos(int constant)
     if (old_totsize == -1)
 	old_totsize = totsize;
 
-    if (ISSET(RELATIVECHARS)) {
-
-	if (strlen(current->data) == 0)
-	    bytepct = 0;
-	else
-	    bytepct = 100 * current_x / strlen(current->data);
-
-	old_i = -1;
-	i = current_x;
-	j = strlen(current->data);
+    if (strlen(current->data) == 0)
+	colpct = 0;
+    else
+	colpct = 100 * current_x / strlen(current->data);
 
-    } else {
-	for (fileptr = fileage; fileptr != current && fileptr != NULL;
-	     fileptr = fileptr->next)
-	    i += strlen(fileptr->data) + 1;
+    for (fileptr = fileage; fileptr != current && fileptr != NULL;
+	 fileptr = fileptr->next)
+	i += strlen(fileptr->data) + 1;
 
-	if (fileptr == NULL)
-	    return -1;
+    if (fileptr == NULL)
+	return -1;
 
-	i += current_x;
+    i += current_x;
 
-	j = totsize;
+    j = totsize;
 
-	if (totsize > 0)
-	    bytepct = 100 * i / totsize;
-    }
+    if (totsize > 0)
+	bytepct = 100 * i / totsize;
 
     if (totlines > 0)
 	 linepct = 100 * current->lineno / totlines;
@@ -1638,8 +1630,9 @@ int do_cursorpos(int constant)
        character values have changed */
     if (!constant || (old_i != i || old_totsize != totsize)) {
 	statusbar(_
-		  ("line %d of %d (%.0f%%), character %ld of %ld (%.0f%%)"),
-		  current->lineno, totlines, linepct, i, j, bytepct);
+		  ("line %d/%d (%.0f%%), col %ld/%ld (%.0f%%), char %ld/%ld (%.0f%%)"),
+		  current->lineno, totlines, linepct, current_x, 
+		  strlen(current->data), colpct, i, j, bytepct);
     }
 
     old_i = i;