diff --git a/extras/conf/udb/Includes/SRB222_linedefs.cfg b/extras/conf/udb/Includes/SRB222_linedefs.cfg
index 0aa7ea6291d899336f0b7935a456f262d62d63b2..fff9edf109b28ba8ada2ca7182cf93ad1b0a7e79 100644
--- a/extras/conf/udb/Includes/SRB222_linedefs.cfg
+++ b/extras/conf/udb/Includes/SRB222_linedefs.cfg
@@ -3677,6 +3677,7 @@ udmf
 					0 = "Add tag";
 					1 = "Remove tag";
 					2 = "Replace first tag";
+					3 = "Change trigger tag";
 				}
 			}
 		}
@@ -3699,6 +3700,7 @@ udmf
 					0 = "Add tag";
 					1 = "Remove tag";
 					2 = "Replace first tag";
+					3 = "Change trigger tag";
 				}
 			}
 		}
diff --git a/src/p_spec.c b/src/p_spec.c
index 69e1e3925b35a9e8004b74b1130db6dd0a265592..cd36053c9d64de35fb33d29ca4fc875122082695 100644
--- a/src/p_spec.c
+++ b/src/p_spec.c
@@ -2396,6 +2396,9 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
 					default:
 						Tag_SectorFSet(secnum, newtag);
 						break;
+					case TMT_TRIGGERTAG:
+						sectors[secnum].triggertag = newtag;
+						break;
 				}
 			}
 			break;
@@ -2418,6 +2421,9 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
 				default:
 					Tag_SectorFSet(secnum, newtag);
 					break;
+				case TMT_TRIGGERTAG:
+					sectors[secnum].triggertag = newtag;
+					break;
 			}
 			break;
 		}
diff --git a/src/p_spec.h b/src/p_spec.h
index bdc912c346943afeeb0be761e9e88d5cbaa779af..33d18d63e5aeef7ddf955406045655d70755c64b 100644
--- a/src/p_spec.h
+++ b/src/p_spec.h
@@ -306,6 +306,7 @@ typedef enum
 	TMT_ADD          = 0,
 	TMT_REMOVE       = 1,
 	TMT_REPLACEFIRST = 2,
+	TMT_TRIGGERTAG   = 3,
 } textmaptagoptions_t;
 
 typedef enum