diff --git a/libwccl/parser/Parser.cpp b/libwccl/parser/Parser.cpp
index 94d6014c6e3b89caa767794a59751df7cc2d874d..3551d42d7b2c6cf9b9c6edda703412e7f6a6ed39 100644
--- a/libwccl/parser/Parser.cpp
+++ b/libwccl/parser/Parser.cpp
@@ -139,6 +139,7 @@ boost::shared_ptr<ANTLRParserResultBase> Parser::parseAnyOperator(
 	std::stringstream errors;
 	boost::shared_ptr<ANTLRParserResultBase> result;
 	if (!result) {
+		ss.clear();
 		ss.seekg(0, std::ios::beg);
 		ANTLRLexer lexer(ss);
 		ANTLRParser parser(lexer);
@@ -150,6 +151,7 @@ boost::shared_ptr<ANTLRParserResultBase> Parser::parseAnyOperator(
 		}
 	}
 	if (!result) {
+		ss.clear();
 		ss.seekg(0, std::ios::beg);
 		ANTLRLexer lexer(ss);
 		ANTLRParser parser(lexer);
@@ -161,6 +163,7 @@ boost::shared_ptr<ANTLRParserResultBase> Parser::parseAnyOperator(
 		}
 	}
 	if (!result) {
+		ss.clear();
 		ss.seekg(0, std::ios::beg);
 		ANTLRLexer lexer(ss);
 		ANTLRParser parser(lexer);