diff --git a/Src/Graphics/New3D/New3D.cpp b/Src/Graphics/New3D/New3D.cpp
index 58a237a..5954213 100644
--- a/Src/Graphics/New3D/New3D.cpp
+++ b/Src/Graphics/New3D/New3D.cpp
@@ -405,7 +405,7 @@ void CNew3D::DescendNodePtr(UINT32 nodeAddr)
 	case 0x00:	// culling node
 		DescendCullingNode(nodeAddr & 0xFFFFFF);
 		break;
-	case 0x01:	// model (perhaps bit 1 is a flag in this case?)
+	case 0x01:	// model (perhaps bit 2 is a flag in this case?)
 	case 0x03:
 		DrawModel(nodeAddr & 0xFFFFFF);
 		break;
@@ -424,19 +424,12 @@ void CNew3D::DescendPointerList(UINT32 addr)
 	UINT32			nodeAddr;
 	int				index;
 
-	if (m_listDepth > 2) {	// several Step 2.1 games require this safeguard
-		return;
-	}
-
 	list = TranslateCullingAddress(addr);
 
 	if (NULL == list) {
 		return;
 	}
 
-	m_listDepth++;
-
-	// Traverse the list forward and print it out
 	index = 0;
 
 	while (true) {
@@ -455,25 +448,6 @@ void CNew3D::DescendPointerList(UINT32 addr)
 
 		index++;
 	}
-
-	/*
-	// Traverse the list backward and descend into each pointer
-	while (index >= 0)
-	{
-		nodeAddr = list[index] & 0x00FFFFFF;	// clear upper 8 bits to ensure this is processed as a culling node
-
-		if (!(list[index] & 0x01000000)) {	//Fighting Vipers
-			
-			if ((nodeAddr != 0) && (nodeAddr != 0x800800)) {
-				DescendCullingNode(nodeAddr);
-			}
-		}
-
-		index--;
-	}
-	*/
-
-	m_listDepth--;
 }
 
 
@@ -758,8 +732,6 @@ void CNew3D::RenderViewport(UINT32 addr, int pri)
 			return;
 	}
 
-	m_listDepth = 0;
-
 	// Descend down the node link: Use recursive traversal
 	DescendNodePtr(nodeAddr);
 }
diff --git a/Src/Graphics/New3D/New3D.h b/Src/Graphics/New3D/New3D.h
index b529823..5f1ecbb 100644
--- a/Src/Graphics/New3D/New3D.h
+++ b/Src/Graphics/New3D/New3D.h
@@ -203,7 +203,6 @@ private:
 	TextureSheet	m_texSheet;
 	NodeAttributes	m_nodeAttribs;
 	Mat4			m_modelMat;				// current modelview matrix
-	int				m_listDepth;
 
 	std::vector<Node> m_nodes;				// this represents the entire render frame
 	std::vector<Poly> m_polyBufferRam;		// dynamic polys