diff --git a/OLEDDisplayUi.cpp b/OLEDDisplayUi.cpp
index f827c326bcd35d35cee36ee05cd947ed8a7106be..5acc6eedcca015922d1e490c33e2e0565937e0e9 100644
--- a/OLEDDisplayUi.cpp
+++ b/OLEDDisplayUi.cpp
@@ -151,21 +151,22 @@ void OLEDDisplayUi::previousFrame() {
 }
 
 void OLEDDisplayUi::switchToFrame(uint8_t frame) {
-  if (frame >= this->frameCount || frame != this->state.currentFrame) return;
-  this->state.lastUpdate = 0;
+  if (frame >= this->frameCount) return;
   this->state.ticksSinceLastStateSwitch = 0;
+  if (frame == this->state.currentFrame) return;
   this->state.frameState = FIXED;
   this->state.currentFrame = frame;
   this->state.isIndicatorDrawen = true;
 }
 
 void OLEDDisplayUi::transitionToFrame(uint8_t frame) {
-  if (frame >= this->frameCount || frame != this->state.currentFrame) return;
+  if (frame >= this->frameCount) return;
+  this->state.ticksSinceLastStateSwitch = 0;
+  if (frame == this->state.currentFrame) return;
   this->nextFrameNumber = frame;
   this->lastTransitionDirection = this->state.frameTransitionDirection;
   this->state.manuelControll = true;
   this->state.frameState = IN_TRANSITION;
-  this->state.ticksSinceLastStateSwitch = 0;
   this->state.frameTransitionDirection = frame < this->state.currentFrame ? -1 : 1;
 }