diff --git a/Source/Plugins/BuilderModes/ClassicModes/LinedefsMode.cs b/Source/Plugins/BuilderModes/ClassicModes/LinedefsMode.cs
index db2130e83b852c2e2108ab143b3c66fa0b970401..03dcbc2b3c16ac3bd1bc2c535fecadc9653ab347 100644
--- a/Source/Plugins/BuilderModes/ClassicModes/LinedefsMode.cs
+++ b/Source/Plugins/BuilderModes/ClassicModes/LinedefsMode.cs
@@ -1207,8 +1207,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			int counter = 0;
 			ICollection<Linedef> selected = General.Map.Map.GetSelectedLinedefs(true);
 			foreach (Linedef ld in selected)
-			{ 
-				if (ld.Back != null && ld.Front.Sector == ld.Back.Sector)
+			{
+				if (ld.Back != null && ld.Front.Sector == ld.Back.Sector && ld.Action != 0)
 					counter++;
 				else
 					ld.Selected = false;
diff --git a/Source/Plugins/BuilderModes/ClassicModes/VerticesMode.cs b/Source/Plugins/BuilderModes/ClassicModes/VerticesMode.cs
index 073ee4d6cb95ea083bb71d0f192b94060ba2ce46..253cd003cc144d3465439a229bc71dc30d3937b6 100644
--- a/Source/Plugins/BuilderModes/ClassicModes/VerticesMode.cs
+++ b/Source/Plugins/BuilderModes/ClassicModes/VerticesMode.cs
@@ -998,8 +998,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
 					Linedef ld2 = General.GetByIndex(v.Linedefs, 1);
 					int angle1 = (int)Math.Round(ld1.Angle * Angle2D.PIDEG);
 					int angle2 = (int)Math.Round(ld2.Angle * Angle2D.PIDEG);
-					if (ld1.Action == 0 && ld2.Action == 0 && 
-						(angle1 == angle2 || angle1 == angle2 + 180 || angle1 + 180 == angle2))
+					if ((angle1 == angle2 || angle1 == angle2 + 180 || angle1 + 180 == angle2) && 
+						((ld1.Action == 0 && ld2.Action == 0) || (ld1.GetFlags() == ld2.GetFlags() && ld1.Action == ld2.Action)))
 						counter++;
 					else
 						v.Selected = false;