diff --git a/libcorpus2/CMakeLists.txt b/libcorpus2/CMakeLists.txt
index b9d669fb4d17380f4db36802ffc00897b302713c..50e5d29123913ad6419462525daf082d755c62cc 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 e2407212cddf71ce9a6bb71ba589ad92240f493b..6c0e499e8f30eb56670a5040692a45dab66b6c0c 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)