diff --git a/apps/gui/statusbar.c b/apps/gui/statusbar.c
index 901615d..85e55d3 100644
--- a/apps/gui/statusbar.c
+++ b/apps/gui/statusbar.c
@@ -278,16 +278,7 @@ void gui_statusbar_draw(struct gui_statusbar * bar, bool force_redraw, struct vi
#endif
memcmp(&(bar->info), &(bar->lastinfo), sizeof(struct status_info)))
{
- if (vp == NULL)
- {
- struct viewport viewport;
- GET_RECT(viewport,statusbar_position(display->screen_type),display);
- display->set_viewport(&viewport);
- }
- else
- {
- display->set_viewport(vp);
- }
+ display->set_viewport(vp);
display->set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID);
display->fillrect(0, 0, display->getwidth(), STATUSBAR_HEIGHT);
display->set_drawmode(DRMODE_SOLID);
@@ -829,8 +820,10 @@ void gui_syncstatusbar_draw(struct gui_syncstatusbar * bars,
return;
#endif /* HAVE_LCD_BITMAP */
int i;
+ struct viewport viewport;
FOR_NB_SCREENS(i) {
- gui_statusbar_draw( &(bars->statusbars[i]), force_redraw, NULL );
+ GET_RECT(viewport, i, display);
+ gui_statusbar_draw( &(bars->statusbars[i]), force_redraw, &viewport );
}
}

diff --git a/apps/gui/viewport.c b/apps/gui/viewport.c
index 9e07c0f..7ba187b 100644
--- a/apps/gui/viewport.c
+++ b/apps/gui/viewport.c
@@ -240,7 +240,8 @@ static void viewportmanager_redraw(void* data)
sb_skin_update(i, NULL != data);
#else
(void)data;
- gui_statusbar_draw(&statusbars.statusbars[i], NULL, NULL);
+ struct viewport viewport;
+ gui_statusbar_draw(&statusbars.statusbars[i], false, &viewport);
#endif
}
}