diff --git a/ChangeLog b/ChangeLog
index 41eb5531f8bf9ad1ad5f7aa7dc94ac5801437ca9..8e2fea0f4b89fddbe3eb000d38ddb9ca5a7fdc14 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -44,7 +44,7 @@ CVS code -
 	- Initialize totsize (DLR).
 - nano.c:
   main()
-	- Added vars oldcurrent and oldcurrent_x to check whether cursor
+	- Added var constcheck as a CRC-like check of whether cursor
 	  pos has changed and if so update the pos with -c.
 	- Many tweaks and changes from numerics to char equivs
 	  (David Lawrence Ramsey).
diff --git a/nano.c b/nano.c
index 0ca7c18e6dc014fd75cea980345309f7b4910297..d91ff69b1c3aec3b8fb19dfdff0bf72140f986d9 100644
--- a/nano.c
+++ b/nano.c
@@ -2448,8 +2448,7 @@ int main(int argc, char *argv[])
     int keyhandled;		/* Have we handled the keystroke yet? */
     int i, modify_control_seq;
     char *argv0;
-    filestruct *oldcurrent;	/* Check to constantly update */
-    int oldcurrent_x;		/* Same */
+    long constcheck;	/* Check to constantly update */
 
 #ifdef _POSIX_VDISABLE
     struct termios term;
@@ -2752,8 +2751,7 @@ int main(int argc, char *argv[])
     reset_cursor();
 
     while (1) {
-	oldcurrent = current;
-	oldcurrent_x = current_x;
+	constcheck = current->lineno + current_x + totsize;
 
 #ifndef DISABLE_MOUSE
 	currshortcut = main_list;
@@ -3035,7 +3033,7 @@ int main(int argc, char *argv[])
 	if (ISSET(DISABLE_CURPOS))
 	    UNSET(DISABLE_CURPOS);
 	else if (ISSET(CONSTUPDATE))
-	    if (current != oldcurrent || current_x != oldcurrent_x)
+	if (constcheck != current->lineno + current_x + totsize)
 		do_cursorpos();
 
 	reset_cursor();