diff --git a/src/p_setup.c b/src/p_setup.c
index 7c06d5b7ff13aa9710abcdc433ff84371c675dbc..bf85e7146abd06035aee0e40bd5adc59f99c4ee2 100644
--- a/src/p_setup.c
+++ b/src/p_setup.c
@@ -2836,6 +2836,8 @@ static void P_ConvertBinaryMap(void)
 		switch (mapthings[i].type)
 		{
 		case 750:
+			Tag_Add(&mapthings[i].tags, mapthings[i].angle);
+			break;
 		case 760:
 		case 761:
 		case 762:
diff --git a/src/p_slopes.c b/src/p_slopes.c
index 9b147f046503ffe061441adbf52fae4bf288a5b8..447c5fd93c621ce69c4a5e0b2779b7bd4648b379 100644
--- a/src/p_slopes.c
+++ b/src/p_slopes.c
@@ -426,11 +426,11 @@ static pslope_t *MakeViaMapthings(INT16 tag1, INT16 tag2, INT16 tag3, UINT8 flag
 		if (mt->type != 750) // Haha, I'm hijacking the old Chaos Spawn thingtype for something!
 			continue;
 
-		if (!vertices[0] && mt->tag == tag1)
+		if (!vertices[0] && Tag_Find(&mt->tags, tag1))
 			vertices[0] = mt;
-		else if (!vertices[1] && mt->tag == tag2)
+		else if (!vertices[1] && Tag_Find(&mt->tags, tag2))
 			vertices[1] = mt;
-		else if (!vertices[2] && mt->tag == tag3)
+		else if (!vertices[2] && Tag_Find(&mt->tags, tag3))
 			vertices[2] = mt;
 	}