diff --git a/src/p_polyobj.c b/src/p_polyobj.c
index f790fa768533574960a1a9621ed9f40333538e32..23e7092be10ee00f8ac9e028e0d5ae5f2b8fb2d3 100644
--- a/src/p_polyobj.c
+++ b/src/p_polyobj.c
@@ -427,6 +427,8 @@ newseg:
 	// seg's ending vertex.
 	for (i = 0; i < numsegs; ++i)
 	{
+		if (segs[i].side != 0) // needs to be frontfacing
+			continue;
 		if (segs[i].v1->x == seg->v2->x && segs[i].v1->y == seg->v2->y)
 		{
 			// Make sure you didn't already add this seg...
@@ -593,6 +595,9 @@ static void Polyobj_spawnPolyObj(INT32 num, mobj_t *spawnSpot, INT32 id)
 		seg_t *seg = &segs[i];
 		INT32 polyID, parentID;
 
+		if (seg->side != 0) // needs to be frontfacing
+			continue;
+
 		if (seg->linedef->special != POLYOBJ_START_LINE)
 			continue;