diff --git a/LEGO1/legotexturepresenter.cpp b/LEGO1/legotexturepresenter.cpp
index 36a7e243..6d0cbe8c 100644
--- a/LEGO1/legotexturepresenter.cpp
+++ b/LEGO1/legotexturepresenter.cpp
@@ -2,6 +2,7 @@
 
 #include "legoomni.h"
 #include "legovideomanager.h"
+#include "mxcompositepresenter.h"
 
 // FUNCTION: LEGO1 0x1004eb40
 LegoTexturePresenter::~LegoTexturePresenter()
@@ -15,3 +16,21 @@ MxResult LegoTexturePresenter::AddToManager()
 	VideoManager()->AddPresenter(*this);
 	return SUCCESS;
 }
+
+// STUB: LEGO1 0x1004fc60
+MxResult LegoTexturePresenter::PutData()
+{
+	// TODO
+	return FAILURE;
+}
+
+// FUNCTION: LEGO1 0x1004fcb0
+void LegoTexturePresenter::DoneTickle()
+{
+	if (this->m_compositePresenter && !this->m_compositePresenter->VTable0x64(2)) {
+		SetTickleState(TickleState_Idle);
+		return;
+	}
+
+	MxMediaPresenter::DoneTickle();
+}
diff --git a/LEGO1/legotexturepresenter.h b/LEGO1/legotexturepresenter.h
index 22a23500..36cc59b9 100644
--- a/LEGO1/legotexturepresenter.h
+++ b/LEGO1/legotexturepresenter.h
@@ -22,7 +22,9 @@ public:
 		return !strcmp(p_name, LegoTexturePresenter::ClassName()) || MxMediaPresenter::IsA(p_name);
 	}
 
+	virtual void DoneTickle() override;       // vtable+0x2c
 	virtual MxResult AddToManager() override; // vtable+0x34
+	virtual MxResult PutData() override;      // vtable+0x4c
 };
 
 #endif // LEGOTEXTUREPRESENTER_H