diff --git a/libwccl/ops/actions/relabel.cpp b/libwccl/ops/actions/relabel.cpp
index 46a7ed4ad3edb3dff639e38476bb18bab1529d99..e741515f41224a6f7be13f4a235e89aed3d5a8c7 100644
--- a/libwccl/ops/actions/relabel.cpp
+++ b/libwccl/ops/actions/relabel.cpp
@@ -15,7 +15,7 @@ Bool Relabel::execute(const ActionExecContext& context) const
 		token.lexemes().clear();
 		foreach (Corpus2::Lexeme& lexeme, original) {
 			token.add_lexeme(lexeme);
-			if (condition_->apply(context)->get_value()) {
+			if ((lexeme.tag().get_pos() != replace_wclass) && condition_->apply(context)->get_value()) {
 				changed.set_value(true);
 				lexeme.set_tag(Corpus2::Tag(replace_wclass, lexeme.tag().get_values()));
 			}