diff --git a/LEGO1/lego/legoomni/src/common/mxcontrolpresenter.cpp b/LEGO1/lego/legoomni/src/common/mxcontrolpresenter.cpp
index 3449423e..39f9be2a 100644
--- a/LEGO1/lego/legoomni/src/common/mxcontrolpresenter.cpp
+++ b/LEGO1/lego/legoomni/src/common/mxcontrolpresenter.cpp
@@ -296,9 +296,14 @@ void MxControlPresenter::Enable(MxBool p_enable)
 // FUNCTION: LEGO1 0x100448a0
 MxBool MxControlPresenter::HasTickleStatePassed(TickleState p_tickleState)
 {
-	MxCompositePresenterList::iterator it = m_list.begin();
-	for (MxS16 i = m_unk0x4e; i > 0; i--, it++) {
-	}
+	MxCompositePresenterList::const_iterator it = m_list.begin();
+
+#ifdef COMPAT_MODE
+	advance(it, m_unk0x4e);
+#else
+	// Uses forward iterator logic instead of bidrectional for some reason.
+	_Advance(it, m_unk0x4e, forward_iterator_tag());
+#endif
 
 	return (*it)->HasTickleStatePassed(p_tickleState);
 }