diff --git a/CMakeLists.txt b/CMakeLists.txt
index 258b43d590734f1939d913b6b262db3ec63ad20b..f32663ea1aab653b998d6c69532dc664572c015b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 2.8.0)
 
 set(wccl_ver_major "0")
 set(wccl_ver_minor "2")
-set(wccl_ver_patch "0")
+set(wccl_ver_patch "1")
 
 set(LIBWCCL_VERSION "${wccl_ver_major}.${wccl_ver_minor}.${wccl_ver_patch}")
 
diff --git a/libwccl/CMakeLists.txt b/libwccl/CMakeLists.txt
index 60088bc69aa4330e489b33d34c47d210bc5a49b1..6c6a9feffae68a6fa0e0afdfc7391e8428547978 100644
--- a/libwccl/CMakeLists.txt
+++ b/libwccl/CMakeLists.txt
@@ -67,6 +67,7 @@ SET(libwccl_STAT_SRC
 	ops/functions/strset/lextranslator.cpp
 	ops/functions/strset/tolower.cpp
 	ops/functions/strset/toupper.cpp
+	ops/functions/strset/anninter.cpp
 	ops/functions/tset/agrfilter.cpp
 	ops/functions/tset/catfilter.cpp
 	ops/functions/tset/getsymbols.cpp
diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g
index 688924da087a6ebc86a51a696715597c04d8c764..c1dd8f336eafc87c8f0296be6cb59d234a7c7a9f 100644
--- a/libwccl/parser/grammar.g
+++ b/libwccl/parser/grammar.g
@@ -55,6 +55,7 @@ header {
 	#include <libwccl/ops/functions/strset/tolower.h>
 	#include <libwccl/ops/functions/strset/getlemmas.h>
 	#include <libwccl/ops/functions/strset/lextranslator.h>
+	#include <libwccl/ops/functions/strset/anninter.h>
 	
 	#include <libwccl/ops/functions/tset/agrfilter.h>
 	#include <libwccl/ops/functions/tset/catfilter.h>
@@ -1052,6 +1053,7 @@ strset_operator [ParsingScope& scope]
 	| ret = strset_condition [scope]
 	| ret = strset_union     [scope]
 	| ret = strset_intersection [scope]
+	| ret = strset_anninter [scope]
 	| ret = strset_lex       [scope]
 	//
 	| LPAREN ret = strset_operator [scope] RPAREN
@@ -1229,6 +1231,24 @@ strset_intersection
   	}
 ;
 
+strset_anninter
+	[ParsingScope& scope]
+	returns [boost::shared_ptr<Function<StrSet> > op]
+{
+	boost::shared_ptr<Function<Position> > pos;
+	boost::shared_ptr<Function<StrSet> > in_strs;
+}
+	: "anninter"
+	LPAREN
+		pos = position_operator [scope]
+		COMMA
+		in_strs = strset_operator [scope]
+	RPAREN
+	{
+		op.reset(new AnnInter(pos, in_strs));
+	}
+;
+
 strset_lex
 	[ParsingScope& scope]
 	returns [boost::shared_ptr<Function<StrSet> > op]