diff --git a/libmwereader/mwereader.cpp b/libmwereader/mwereader.cpp
index cb0106eccbb486346486a50d65b30dde53804008..561acd7caf3eb3e4456bd3d3d3e2266e7670d618 100644
--- a/libmwereader/mwereader.cpp
+++ b/libmwereader/mwereader.cpp
@@ -52,7 +52,7 @@ bool MWEReader::registered = TokenReader::register_path_reader<MWEReader>(
 		std::vector<Token*> tokens = currentSentence->tokens();
 		if(token_index<tokens.size())
 		{
-			return tokens.at(token_index++);
+			return tokens.at(token_index++)->clone();
 		}
 		else
 		{
@@ -66,7 +66,7 @@ bool MWEReader::registered = TokenReader::register_path_reader<MWEReader>(
 			}
 			tokens = currentSentence->tokens();
 			token_index=0;
-			return tokens.at(token_index++);
+			return tokens.at(token_index++)->clone();
 		}
 	}