Index: apps/menus/settings_menu.c
===================================================================
--- apps/menus/settings_menu.c	(revision 12752)
+++ apps/menus/settings_menu.c	(working copy)
@@ -190,7 +190,7 @@
 
 /* Time & Date */
 #if CONFIG_RTC
-static int timedate_set(void)
+int timedate_set(void)
 {
     struct tm tm;
     int result;
Index: apps/root_menu.c
===================================================================
--- apps/root_menu.c	(revision 12752)
+++ apps/root_menu.c	(working copy)
@@ -21,6 +21,7 @@
 #include <stdlib.h>
 #include <stdbool.h>
 #include "config.h"
+#include "settings_menu.h"
 #include "menu.h"
 #include "root_menu.h"
 #include "lang.h"
@@ -411,6 +404,11 @@
     if (global_settings.start_in_screen == 0)
         next_screen = (int)global_status.last_screen;
     else next_screen = global_settings.start_in_screen - 2;
+
+#if CONFIG_RTC
+    if(!valid_time(get_time()))
+        timedate_set();
+#endif
     
 #ifdef HAVE_RTC_ALARM
     if ( rtc_check_alarm_started(true) ) 
Index: apps/settings_menu.h
===================================================================
--- apps/settings_menu.h	(revision 12752)
+++ apps/settings_menu.h	(working copy)
@@ -23,5 +23,6 @@
 
 bool settings_menu(void);
 bool manage_settings_menu(void);
+int timedate_set(void); 
 
 #endif
