diff --git a/LEGO1/lego/legoomni/include/towtrack.h b/LEGO1/lego/legoomni/include/towtrack.h
index c20d4d36..b9d4ab32 100644
--- a/LEGO1/lego/legoomni/include/towtrack.h
+++ b/LEGO1/lego/legoomni/include/towtrack.h
@@ -97,13 +97,14 @@ public:
 	void CreateState();
 	void FUN_1004dab0();
 	void FUN_1004dad0();
-	void FUN_1004db10();
+	void StopActions();
 	void FUN_1004dbe0();
 
 	// SYNTHETIC: LEGO1 0x1004c950
 	// TowTrack::`scalar deleting destructor'
 
 private:
+	void Leave();
 	void FUN_1004dcf0(IsleScript::Script);
 
 	undefined4 m_unk0x160;         // 0x160
diff --git a/LEGO1/lego/legoomni/src/actors/towtrack.cpp b/LEGO1/lego/legoomni/src/actors/towtrack.cpp
index 357a51cb..67321333 100644
--- a/LEGO1/lego/legoomni/src/actors/towtrack.cpp
+++ b/LEGO1/lego/legoomni/src/actors/towtrack.cpp
@@ -204,10 +204,29 @@ MxLong TowTrack::HandleClick()
 	return 1;
 }
 
-// STUB: LEGO1 0x1004d8f0
+// FUNCTION: LEGO1 0x1004d8f0
 void TowTrack::Exit()
 {
-	// TODO
+	GameState()->m_currentArea = LegoGameState::e_garageExterior;
+	StopActions();
+	FUN_1004dbe0();
+	Leave();
+}
+
+// FUNCTION: LEGO1 0x1004d920
+void TowTrack::Leave()
+{
+	IslePathActor::Exit();
+	CurrentWorld()->RemoveActor(this);
+	m_roi->SetVisibility(FALSE);
+	RemoveFromCurrentWorld(*g_isleScript, IsleScript::c_TowTrackDashboard_Bitmap);
+	RemoveFromCurrentWorld(*g_isleScript, IsleScript::c_TowTrackArms_Ctl);
+	RemoveFromCurrentWorld(*g_isleScript, IsleScript::c_TowHorn_Ctl);
+	RemoveFromCurrentWorld(*g_isleScript, IsleScript::c_TowHorn_Sound);
+	RemoveFromCurrentWorld(*g_isleScript, IsleScript::c_TowInfo_Ctl);
+	RemoveFromCurrentWorld(*g_isleScript, IsleScript::c_TowSpeedMeter);
+	RemoveFromCurrentWorld(*g_isleScript, IsleScript::c_TowFuelMeter);
+	ControlManager()->Unregister(this);
 }
 
 // STUB: LEGO1 0x1004d9e0
@@ -229,10 +248,18 @@ void TowTrack::FUN_1004dad0()
 	// TODO
 }
 
-// STUB: LEGO1 0x1004db10
-void TowTrack::FUN_1004db10()
+// FUNCTION: LEGO1 0x1004db10
+void TowTrack::StopActions()
 {
-	// TODO
+	InvokeAction(Extra::e_stop, *g_isleScript, IsleScript::c_wns050p1_RunAnim, NULL);
+	InvokeAction(Extra::e_stop, *g_isleScript, IsleScript::c_wns046mg_RunAnim, NULL);
+	InvokeAction(Extra::e_stop, *g_isleScript, IsleScript::c_wns057rd_RunAnim, NULL);
+	InvokeAction(Extra::e_stop, *g_isleScript, IsleScript::c_wns048p1_RunAnim, NULL);
+	InvokeAction(Extra::e_stop, *g_isleScript, IsleScript::c_wns049p1_RunAnim, NULL);
+	InvokeAction(Extra::e_stop, *g_isleScript, IsleScript::c_wns051bd_RunAnim, NULL);
+	InvokeAction(Extra::e_stop, *g_isleScript, IsleScript::c_wns053pr_RunAnim, NULL);
+	InvokeAction(Extra::e_stop, *g_isleScript, IsleScript::c_wns045di_RunAnim, NULL);
+	InvokeAction(Extra::e_stop, *g_isleScript, IsleScript::c_pns123pr_RunAnim, NULL);
 }
 
 // STUB: LEGO1 0x1004dbe0
diff --git a/LEGO1/lego/legoomni/src/worlds/isle.cpp b/LEGO1/lego/legoomni/src/worlds/isle.cpp
index fa9f9c5f..20c7d28a 100644
--- a/LEGO1/lego/legoomni/src/worlds/isle.cpp
+++ b/LEGO1/lego/legoomni/src/worlds/isle.cpp
@@ -1196,7 +1196,7 @@ MxBool Isle::Escape()
 		break;
 	case 8:
 		if (UserActor() != NULL && !UserActor()->IsA("TowTrack")) {
-			m_towtrack->FUN_1004db10();
+			m_towtrack->StopActions();
 			m_towtrack->FUN_1004dbe0();
 		}
 		break;
@@ -1250,7 +1250,7 @@ void Isle::FUN_10033350()
 
 	if (m_act1state->m_unk0x018 == 8) {
 		if (UserActor() != NULL && !UserActor()->IsA("TowTrack")) {
-			m_towtrack->FUN_1004db10();
+			m_towtrack->StopActions();
 			m_towtrack->FUN_1004dbe0();
 		}
 	}