diff --git a/src/lib.rs b/src/lib.rs
index 87b0ce737e7932884d6803c092e70e182ab15f9c..564072969061b270e8b0c4772b30e5fef7829387 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -916,7 +916,7 @@ fn readline_edit<C: Completer>(prompt: &str,
             }
             Cmd::EndOfFile => {
                 editor.kill_ring.reset();
-                if !s.edit_state.is_emacs_mode() {
+                if !s.edit_state.is_emacs_mode() && !s.line.is_empty() {
                     try!(edit_move_end(&mut s));
                     break;
                 } else if s.line.is_empty() {