diff --git a/word2vec.go b/word2vec.go
index <HASH>..<HASH> 100644
--- a/word2vec.go
+++ b/word2vec.go
@@ -51,8 +51,13 @@ func FromReader(r io.Reader) (*Model, error) {
 
 		v.Normalise()
 
+		m.words[w] = v
+
 		b, err := br.ReadByte()
 		if err != nil {
+			if i == size-1 && err == io.EOF {
+				break
+			}
 			return nil, err
 		}
 		if b != byte('\n') {
@@ -60,8 +65,6 @@ func FromReader(r io.Reader) (*Model, error) {
 				return nil, err
 			}
 		}
-
-		m.words[w] = v
 	}
 	return m, nil
 }
Added fix to correctly handle last vector for gensim-encoded models.