diff --git a/src/line_buffer.rs b/src/line_buffer.rs
index 9915f73170ea6f6c79d683b2cf8e8697d5557fa2..d08063f918f07d5020a0d96dc944767522fbc4df 100644
--- a/src/line_buffer.rs
+++ b/src/line_buffer.rs
@@ -407,7 +407,7 @@ impl LineBuffer {
         }
         let mut wp = 0;
         let mut gis = self.buf[pos..].grapheme_indices(true);
-        let mut gi = if at != At::Start {
+        let mut gi = if at == At::BeforeEnd {
             // TODO Validate
             gis.next()
         } else {
@@ -1088,6 +1088,11 @@ mod test {
         let ok = s.move_to_next_word(At::AfterEnd, Word::Emacs, 1);
         assert_eq!(true, ok);
         assert_eq!(7, s.pos); // after 'c'
+
+        s.move_home();
+        let ok = s.move_to_next_word(At::AfterEnd, Word::Emacs, 1);
+        assert_eq!(true, ok);
+        assert_eq!(1, s.pos); // after 'a'
     }
 
     #[test]