diff --git a/libcorpus2/CMakeLists.txt b/libcorpus2/CMakeLists.txt
index ae39d3bdfe9bbf5d54ed1875b7ab0db9c40e3c42..9433e273b52ad02526ed897d232b4c9771513d23 100644
--- a/libcorpus2/CMakeLists.txt
+++ b/libcorpus2/CMakeLists.txt
@@ -3,7 +3,7 @@ PROJECT(corpus2)
 
 set(corpus2_ver_major "0")
 set(corpus2_ver_minor "1")
-set(corpus2_ver_patch "1")
+set(corpus2_ver_patch "2")
 
 
 if(NOT LIBCORPUS2_SRC_DATA_DIR)
diff --git a/libcorpus2/tagset.cpp b/libcorpus2/tagset.cpp
index 8fbb29619c2d79235674e4323e5b5c46d46f79fe..98d402b1b231c5d613b4996412b23e970645f3b3 100644
--- a/libcorpus2/tagset.cpp
+++ b/libcorpus2/tagset.cpp
@@ -98,7 +98,7 @@ std::string Tagset::id_string(const Tag& tag) const
 Tag Tagset::parse_symbol(const std::string& s) const
 {
 	mask_t m = get_pos_mask(s);
-	if (m.none()) {
+	if (m.any()) {
 		return Tag(m);
 	}
 	m = get_attribute_mask(s);
diff --git a/tests/tag_split.cpp b/tests/tag_split.cpp
index b666049cde8dbce061369a81f9f52429a12a5814..c252903906e328f4dd8bfb58d83a0e6ee717119f 100644
--- a/tests/tag_split.cpp
+++ b/tests/tag_split.cpp
@@ -216,6 +216,18 @@ BOOST_FIXTURE_TEST_CASE( s, F )
 
 }
 
+BOOST_FIXTURE_TEST_CASE( symbols, F )
+{
+	Corpus2::Tag t;
+	t = tagset->parse_symbol("some");
+	BOOST_CHECK_EQUAL(tagset->tag_to_symbol_string(t), "some");
+	t = tagset->parse_symbol("tag");
+	BOOST_CHECK_EQUAL(tagset->tag_to_symbol_string(t), "tag");
+	t = tagset->parse_symbol("C");
+	BOOST_CHECK_EQUAL(tagset->tag_to_symbol_string(t), "C");
+	BOOST_CHECK(tagset->tag_to_symbol_string(t, false) != "C");
+}
+
 BOOST_AUTO_TEST_SUITE_END()
 
 BOOST_AUTO_TEST_CASE(bs_split)