diff --git a/nano.c b/nano.c
index 0f520c1dcf7d5b2f4049b24127e53b3d0a80e6f5..3afe626d5d5e53948b8b1a73c1eed0892b4b7db2 100644
--- a/nano.c
+++ b/nano.c
@@ -858,8 +858,10 @@ void do_prev_word(void)
 	    while (isalnum((int) fileptr->data[i]) && i != 0)
 		i--;
 
-	    i++;
-	    if (i != 0)
+	    if (!isalnum((int) fileptr->data[i]))
+		i++;
+
+	    if (i != 0 || i != current_x)
 		break;
 
 	}