diff --git a/python_payload/st3m/application.py b/python_payload/st3m/application.py
index 344b63d746528c8b951eb0e1566d9690025b16e8..33217cb18ca1f4f6770f93b59f175bc023e0a6dc 100644
--- a/python_payload/st3m/application.py
+++ b/python_payload/st3m/application.py
@@ -2,6 +2,7 @@ from st3m.ui.view import (
     BaseView,
     ViewTransitionSwipeLeft,
     ViewManager,
+    ViewTransitionDirection,
 )
 from st3m.ui.menu import MenuItem
 from st3m.input import InputState
@@ -67,9 +68,7 @@ class Application(BaseView):
         super().on_enter(vm)
 
     def on_exit(self) -> None:
-        fully_exiting = not self.vm._history or not isinstance(
-            self.vm._history[-1], type(self)
-        )
+        fully_exiting = self.vm.direction == ViewTransitionDirection.BACKWARD
         # If the app requested to change wifi state
         # fall back to system defaults on exit
         if fully_exiting and self._wifi_preference is not None: