diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/cursor/TestCursorPosition.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/cursor/TestCursorPosition.java
index 4304e2b..8661bc9 100644
--- a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/cursor/TestCursorPosition.java
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/cursor/TestCursorPosition.java
@@ -417,7 +417,7 @@
 	public void moveToPreviousWord() throws Exception {
 		cursorAt(endOfFirstText() - 1); // consectur|.
 		moveCursor(toPreviousWord());
-		assertCursorAt(endOfFirstText() - 13); //lacinia| consectur.
+		assertCursorAt(endOfFirstText() - 12); //lacinia |consectur.
 	}
 
 	/*
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/cursor/MoveToPreviousWord.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/cursor/MoveToPreviousWord.java
index 2520756..346f4f5 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/cursor/MoveToPreviousWord.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/cursor/MoveToPreviousWord.java
@@ -9,14 +9,14 @@
 public class MoveToPreviousWord implements ICursorMove {
 
 	@Override
-	public int calculateNewOffset(final Graphics graphics, IViewPort viewPort, final ContentTopology contentTopology, final int currentOffset, final IContentBox currentBox, final Rectangle hotArea, final int preferredX) {
+	public int calculateNewOffset(final Graphics graphics, final IViewPort viewPort, final ContentTopology contentTopology, final int currentOffset, final IContentBox currentBox, final Rectangle hotArea, final int preferredX) {
 		final IContent content = currentBox.getContent();
 		int offset = currentOffset;
-		while (offset > 1 && Character.isLetterOrDigit(content.charAt(offset - 1))) {
+		while (offset > 1 && !Character.isLetterOrDigit(content.charAt(offset - 1))) {
 			offset--;
 		}
 
-		while (offset > 1 && !Character.isLetterOrDigit(content.charAt(offset - 1))) {
+		while (offset > 1 && Character.isLetterOrDigit(content.charAt(offset - 1))) {
 			offset--;
 		}
 		return offset;
