diff --git a/ChangeLog b/ChangeLog
index 8fabe8e3af45eb46b68a13854693dff057283351..7f55139df00a9566190c777216529263a0fe21f0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -91,6 +91,10 @@ CVS code -
 	  during wait() and can then call cancel_fork() properly. (DLR)
   do_delete()
 	- Tweak for efficiency. (David Benbennick)
+  do_prev_word()
+	- Switch the last test (current != NULL or not) around to match
+	  the order of the same test in do_next_word() (current ==
+	  NULL).  The results are the same either way. (DLR)
   do_spell()
 	- Tweak for efficiency. (David Benbennick)
 	- Change the statusbar entries used in cases of failure so that
diff --git a/src/nano.c b/src/nano.c
index d0b5501d4d70045b5d9bfbf74cad6d9c8b7df58b..e890e890ac5f9338604ce47db7c428b66ca94e38 100644
--- a/src/nano.c
+++ b/src/nano.c
@@ -1200,12 +1200,12 @@ int do_prev_word(void)
 	    current_x = strlen(current->prev->data);
     }
 
-    if (current != NULL) {
-	while (current_x > 0 && isalnum((int)current->data[current_x - 1]))
-	    current_x--;
-    } else {
+    if (current == NULL) {
 	current = fileage;
 	current_x = 0;
+    } else {
+	while (current_x > 0 && isalnum((int)current->data[current_x - 1]))
+	    current_x--;
     }
 
     placewewant = xplustabs();