diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs
index 743f3846564d62b05b6da8d67370a0f3875ca69b..399fd7f887853be45a4bd7873363ce435a737897 100755
--- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs
+++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs
@@ -1056,13 +1056,31 @@ namespace CodeImp.DoomBuilder.BuilderModes
 						List<Thing> sourcethings = new List<Thing>();
 						if (!thingtags.ContainsKey(l.Args[1]) || thingtags[l.Args[1]].Count == 0)
 							break;
+						foreach (Thing thing in thingtags[l.Args[1]])
+						{
+							if (sourcethings.Contains(thing))
+								continue;
+							sourcethings.Add(thing);
+							break;
+						}
 						if (!thingtags.ContainsKey(l.Args[2]) || thingtags[l.Args[2]].Count == 0)
 							break;
+						foreach (Thing thing in thingtags[l.Args[2]])
+						{
+							if (sourcethings.Contains(thing))
+								continue;
+							sourcethings.Add(thing);
+							break;
+						}
 						if (!thingtags.ContainsKey(l.Args[3]) || thingtags[l.Args[3]].Count == 0)
 							break;
-						sourcethings.Add(thingtags[l.Args[1]][0]);
-						sourcethings.Add(thingtags[l.Args[2]][0]);
-						sourcethings.Add(thingtags[l.Args[3]][0]);
+						foreach (Thing thing in thingtags[l.Args[3]])
+						{
+							if (sourcethings.Contains(thing))
+								continue;
+							sourcethings.Add(thing);
+							break;
+						}
 						SectorData sd = GetSectorData((l.Args[0] < 2) ? l.Front.Sector : l.Back.Sector);
 						sd.AddEffectSRB2ThingVertexSlope(sourcethings, (l.Args[0] & 1) != 1);
 						break;