diff --git a/src/navigation.cpp b/src/navigation.cpp
index 4296b9770b0f3669c884c6fac170ad8823d8b695..a91efa575706df1ff4ae723f32de073903cc78f1 100644
--- a/src/navigation.cpp
+++ b/src/navigation.cpp
@@ -4,7 +4,23 @@ using namespace GNSSUtils;
 
 Navigation::Navigation()
 {
+    // initialization
     freeNavigationArrays();
+    memset (nav_.utc_gps, 0, sizeof (nav_.utc_gps));
+    memset (nav_.utc_glo, 0, sizeof (nav_.utc_glo));
+    memset (nav_.utc_gal, 0, sizeof (nav_.utc_gal));
+    memset (nav_.utc_qzs, 0, sizeof (nav_.utc_qzs));
+    memset (nav_.utc_cmp, 0, sizeof (nav_.utc_cmp));
+    memset (nav_.utc_irn, 0, sizeof (nav_.utc_irn));
+    memset (nav_.utc_sbs, 0, sizeof (nav_.utc_sbs));
+    memset (nav_.ion_gps, 0, sizeof (nav_.ion_gps));
+    memset (nav_.ion_gal, 0, sizeof (nav_.ion_gal));
+    memset (nav_.ion_qzs, 0, sizeof (nav_.ion_qzs));
+    memset (nav_.ion_cmp, 0, sizeof (nav_.ion_cmp));
+    memset (nav_.ion_irn, 0, sizeof (nav_.ion_irn));
+    nav_.leaps = 0;
+    sbssat_t sbssat_zero = {0};
+    nav_.sbssat = sbssat_zero;
 }
 
 Navigation::Navigation(const Navigation& nav)