diff --git a/src/rtkcmn.c b/src/rtkcmn.c
index 9d1ab9631c331dc4a5831cf3ffb6a8c7ca18411c..f8565bdf7d18dba6abbd6e9c235cb8227c94ec8a 100644
--- a/src/rtkcmn.c
+++ b/src/rtkcmn.c
@@ -2531,7 +2531,7 @@ static int cmpeph(const void *p1, const void *p2)
             q1->sat-q2->sat);
 }
 /* sort and unique ephemeris -------------------------------------------------*/
-static void uniqeph(nav_t *nav)
+extern void uniqeph(nav_t *nav)
 {
     eph_t *nav_eph;
     int i,j;
@@ -2569,7 +2569,7 @@ static int cmpgeph(const void *p1, const void *p2)
             q1->sat-q2->sat);
 }
 /* sort and unique glonass ephemeris -----------------------------------------*/
-static void uniqgeph(nav_t *nav)
+extern void uniqgeph(nav_t *nav)
 {
     geph_t *nav_geph;
     int i,j;
@@ -2599,6 +2599,15 @@ static void uniqgeph(nav_t *nav)
     
     trace(4,"uniqgeph: ng=%d\n",nav->ng);
 }
+/* update navigation data ----------------------------------------------------*/
+extern void updatenav(nav_t *nav)
+{
+    int i,j;
+    for (i=0;i<MAXSAT;i++) for (j=0;j<NFREQ;j++) {
+        nav->lam[i][j]=satwavelen(i+1,j,nav);
+    }
+}
+
 /* compare sbas ephemeris ----------------------------------------------------*/
 static int cmpseph(const void *p1, const void *p2)
 {
diff --git a/src/rtklib.h b/src/rtklib.h
index c4927f88afd4769d10081d0ddb344b2218eec4b9..d7bf3a162b8b8bf0cff291e6958ec3078380b4c8 100644
--- a/src/rtklib.h
+++ b/src/rtklib.h
@@ -1544,6 +1544,9 @@ EXPORT double dms2deg(const double *dms);
 /* input and output functions ------------------------------------------------*/
 EXPORT void readpos(const char *file, const char *rcv, double *pos);
 EXPORT int  sortobs(obs_t *obs);
+EXPORT void updatenav(nav_t *nav);
+EXPORT void uniqeph(nav_t *nav);
+EXPORT void uniqgeph(nav_t *nav);
 EXPORT void uniqnav(nav_t *nav);
 EXPORT int  screent(gtime_t time, gtime_t ts, gtime_t te, double tint);
 EXPORT int  readnav(const char *file, nav_t *nav);
diff --git a/src/rtksvr.c b/src/rtksvr.c
index a82da2cfe48e98dbba00ba318b794ad139aa9a17..34a33607185a67c118e2e119cd70b1f0788e0093 100644
--- a/src/rtksvr.c
+++ b/src/rtksvr.c
@@ -108,14 +108,6 @@ static void writesol(rtksvr_t *svr, int index)
         rtksvrunlock(svr);
     }
 }
-/* update navigation data ----------------------------------------------------*/
-static void updatenav(nav_t *nav)
-{
-    int i,j;
-    for (i=0;i<MAXSAT;i++) for (j=0;j<NFREQ;j++) {
-        nav->lam[i][j]=satwavelen(i+1,j,nav);
-    }
-}
 /* update glonass frequency channel number in raw data struct ----------------*/
 static void updatefcn(rtksvr_t *svr)
 {