diff --git a/app/rtknavi/instrdlg.cpp b/app/rtknavi/instrdlg.cpp
index f50a0439f4d87fe67924eab825fb957ded9a6f1d..37ae67b6732034764f19fb04db403e7a9bab74e5 100644
--- a/app/rtknavi/instrdlg.cpp
+++ b/app/rtknavi/instrdlg.cpp
@@ -59,7 +59,11 @@ void __fastcall TInputStrDialog::FormShow(TObject *Sender)
 	TimeTagC  ->Checked  =TimeTag;
 	TimeSpeedL->Text     =TimeSpeed;
 	TimeStartE->Text     =TimeStart;
-	Chk64Bit  ->Checked  =Time64Bit;
+		if (Time64Bit) {
+		  Time64BitL   ->ItemIndex=1;
+		} else {
+		  Time64BitL   ->ItemIndex=0;
+		}
 	NmeaPos1  ->Text     =s.sprintf("%.9f",NmeaPos[0]);
 	NmeaPos2  ->Text     =s.sprintf("%.9f",NmeaPos[1]);
 	NmeaPos3  ->Text     =s.sprintf("%.3f",NmeaPos[2]);
@@ -86,7 +90,7 @@ void __fastcall TInputStrDialog::BtnOkClick(TObject *Sender)
 	TimeTag    =TimeTagC  ->Checked;
 	TimeSpeed  =TimeSpeedL->Text;
 	TimeStart  =TimeStartE->Text;
-	Time64Bit  =Chk64Bit  ->Checked;
+    Time64Bit  =Time64BitL->ItemIndex;
 	NmeaPos[0] =str2dbl(NmeaPos1->Text);
 	NmeaPos[1] =str2dbl(NmeaPos2->Text);
 	NmeaPos[2] =str2dbl(NmeaPos3->Text);
@@ -148,7 +152,7 @@ AnsiString __fastcall TInputStrDialog::SetFilePath(AnsiString path)
 	if (TimeTagC->Checked     ) path+="::T";
 	if (TimeStartE->Text!="0" ) path+="::+"+TimeStartE->Text;
 	path+="::"+TimeSpeedL->Text;
-	if (Chk64Bit->Checked     ) path+="::P=8";
+    if (Time64Bit) { path+="::P=8"; } else { path+="::P=4"; };
 	return path;
 }
 //---------------------------------------------------------------------------
@@ -393,9 +397,9 @@ void __fastcall TInputStrDialog::UpdateEnable(void)
 	TimeTagC  ->Enabled=ena1;
 	TimeStartE->Enabled=ena1&&TimeTagC->Checked;
 	TimeSpeedL->Enabled=ena1&&TimeTagC->Checked;
+    Time64BitL->Enabled=ena1&&TimeTagC->Checked;
 	LabelF2   ->Enabled=ena1&&TimeTagC->Checked;
 	LabelF3   ->Enabled=ena1&&TimeTagC->Checked;
-	Chk64Bit  ->Enabled=ena1&&TimeTagC->Checked;
 }
 //---------------------------------------------------------------------------
 
diff --git a/app/rtknavi/instrdlg.dfm b/app/rtknavi/instrdlg.dfm
index 165f2667f978afdf70bb953b8f653ab0179c6b33..1e05b6ead3a679b32da74038a0ddcdcb1be5f00a 100644
--- a/app/rtknavi/instrdlg.dfm
+++ b/app/rtknavi/instrdlg.dfm
@@ -540,13 +540,16 @@ object InputStrDialog: TInputStrDialog
     TabOrder = 35
     Text = '10'
   end
-  object Chk64Bit: TCheckBox
+  object Time64BitL: TComboBox
     Left = 166
-    Top = 233
-    Width = 40
-    Height = 17
-    Caption = '64bit'
+    Top = 232
+    Width = 48
+    Height = 21
     TabOrder = 36
+    Text = '32bit'
+    Items.Strings = (
+      '32bit'
+      '64bit')
   end
   object OpenDialog: TOpenDialog
     Filter = 
diff --git a/app/rtknavi/instrdlg.h b/app/rtknavi/instrdlg.h
index 502c0a47ae2ddd68bb74350dc86c80898ffea20b..71fb61c3eb4955db9f303a719a59877965145d41 100644
--- a/app/rtknavi/instrdlg.h
+++ b/app/rtknavi/instrdlg.h
@@ -62,7 +62,7 @@ __published:
 	TEdit *EditMaxBL;
 	TLabel *LabelMaxBL;
 	TLabel *LabelKm;
-	TCheckBox *Chk64Bit;
+	TComboBox *Time64BitL;
 	void __fastcall BtnOkClick(TObject *Sender);
 	void __fastcall FormShow(TObject *Sender);
 	void __fastcall BtnStr1Click(TObject *Sender);
diff --git a/app/rtknavi/navimain.cpp b/app/rtknavi/navimain.cpp
index e918400f89c8292ce16ad96bcbd32e0d2e6ab226..f1b0cfe05cb51cfab71d24a9f5d335bd626b6a67 100644
--- a/app/rtknavi/navimain.cpp
+++ b/app/rtknavi/navimain.cpp
@@ -2581,7 +2581,7 @@ void __fastcall TMainForm::LoadOpt(void)
     InTimeTag       =ini->ReadInteger("setting","intimetag",       0);
     InTimeSpeed     =ini->ReadString ("setting","intimespeed",  "x1");
     InTimeStart     =ini->ReadString ("setting","intimestart",   "0");
-    InTime64Bit     =ini->ReadInteger("setting","intime64bit",     0);
+    InTime64Bit     =ini->ReadInteger("setting","intime64bit",      sizeof (size_t) == 4 ? 0 : 1);
     OutTimeTag      =ini->ReadInteger("setting","outtimetag",      0);
     OutAppend       =ini->ReadInteger("setting","outappend",       0);
     OutSwapInterval =ini->ReadString ("setting","outswapinterval","");
diff --git a/src/stream.c b/src/stream.c
index d84f7829228d0c694a6c8bd5fb3d94dfa22e3b7c..9308c6e2e5cb37f3b6f4acd9b0ed6cec313b5190 100644
--- a/src/stream.c
+++ b/src/stream.c
@@ -816,6 +816,8 @@ static int readfile(file_t *file, unsigned char *buff, int nmax, char *msg)
         if ((n=file->fpos_n-ftell(file->fp))<nmax) {
             nmax=n;
         }
+	
+        if (!file->repmode) tick_master = file->tick_n;
     }
     if (nmax>0) {
         nr=(int)fread(buff,1,nmax,file->fp);
@@ -3339,4 +3341,4 @@ extern void strsendcmd(stream_t *str, const char *cmd)
         }
         if (*q=='\0') break; else p=q+1;
     }
-}
\ No newline at end of file
+}