diff --git a/src/libmwereader/mwereader.cpp b/src/libmwereader/mwereader.cpp
index 933a2a04b3133c5b891ddee939cc6bf7367ce99c..a0acbcb66a930d3bfe7393b7fc6331126538123d 100644
--- a/src/libmwereader/mwereader.cpp
+++ b/src/libmwereader/mwereader.cpp
@@ -135,8 +135,11 @@ bool MWEReader::registered = TokenReader::register_path_reader<MWEReader>(
 			tokens[head]->create_metadata();
 		}
 		TokenMetaDataPtr md = tokens[head]->get_metadata();
-		md->set_attribute(get_annotation_channel_base_name(), new_base);
-
+		std::string curr_base = md->get_attribute(get_annotation_channel_base_name());
+		// set new base only if it is longer than current one (if exists)
+		if (new_base.length() > curr_base.length()) {
+			md->set_attribute(get_annotation_channel_base_name(), new_base);
+		}
 		// annotate mwe elements with annotation_number of head
 		std::set<int>::iterator pos_it;
 		int ann_num;