diff --git a/libmwereader/mwereader.cpp b/libmwereader/mwereader.cpp
index 670d13913dd9d9e8153122371f6df0166830eb86..bc366efcdb20715abdfed497ac77cbe578168f94 100644
--- a/libmwereader/mwereader.cpp
+++ b/libmwereader/mwereader.cpp
@@ -71,22 +71,12 @@ bool MWEReader::registered = TokenReader::register_path_reader<MWEReader>(
 							tok->set_orth_utf8(new_orth_utf8);
 							foreach(Lexeme& lex, tok->lexemes())
 							{
-
 								if(lex.is_disamb()){
-
 									lex.set_lemma_utf8(pLU->get_base());
 								}
 							}
-
-							std::vector <Token*>::iterator del_iter = tokens.begin();
-							while (del_iter  != tokens.end()) {
-								if( (*del_iter) == NULL)
-									del_iter  = tokens.erase(del_iter);
-								else
-									++del_iter;
-								}
-							}
-
+							tokens.erase(std::remove(tokens.begin(), tokens.end(), NULL), tokens.end());
+						}
 					}
 				}
 			}