diff --git a/libcorpus2/token.h b/libcorpus2/token.h
index ab0992271655081f2c4d0f8442df0ec4f4c3bd07..5cd4f61e3e3af089a6c04c2dd8c970710e143df0 100644
--- a/libcorpus2/token.h
+++ b/libcorpus2/token.h
@@ -106,6 +106,11 @@ public:
 		lexemes_.push_back(lex);
 	}
 
+	/// Replaces all the lexemes with the given vector
+	void replace_lexemes(const std::vector<Lexeme>& new_lexemes) {
+		lexemes_ = new_lexemes;
+	}
+
 	/**
 	 * Get the 'best' lexeme available, with best meaning disambiguated if
 	 * possible, and when there is more than one candidate, some form of