diff --git a/libcorpus2/tagset.cpp b/libcorpus2/tagset.cpp
index f676b0ce90de19f96c991ac7df389371f14acb22..773482a04ac266551dd9c66e4c5b2564447a42f4 100644
--- a/libcorpus2/tagset.cpp
+++ b/libcorpus2/tagset.cpp
@@ -177,6 +177,7 @@ void Tagset::parse_tag(const string_range_vector &fields, bool allow_extra,
 			std::vector<mask_t> values;
 			mask_t amask;
 			foreach (string_range& dot, dots) {
+				if (dot.empty()) continue;
 				mask_t v = get_value_mask(boost::copy_range<std::string>(dot));
 				mask_t curr = get_attribute_mask(get_value_attribute(v));