diff --git a/src/p_maputl.c b/src/p_maputl.c
index 740797fb0c10dd407b30fd972169a0f727830c20..7779a119d03f6ce5d96a07fc7abb25334670727c 100644
--- a/src/p_maputl.c
+++ b/src/p_maputl.c
@@ -519,7 +519,20 @@ void P_LineOpening(line_t *linedef, mobj_t *mobj)
 	I_Assert(back != NULL);
 
 	openfloorrover = openceilingrover = NULL;
-
+#ifdef POLYOBJECTS
+	if (linedef->polyobj)
+	{
+		// set these defaults so that polyobjects don't interfere with collision above or below them
+		opentop = INT32_MAX;
+		openbottom = INT32_MIN;
+		highceiling = INT32_MIN;
+		lowfloor = INT32_MAX;
+#ifdef ESLOPE
+		opentopslope = openbottomslope = NULL;
+#endif
+	}
+	else
+#endif
 	{ // Set open and high/low values here
 		fixed_t frontheight, backheight;