diff --git a/alien/inc/TAlienFile.h b/alien/inc/TAlienFile.h
index f3e643a5b6697c51862af12f4dc667a1c69a6489..f0c177ed87fb844272377bcab77364d86d855814 100644
--- a/alien/inc/TAlienFile.h
+++ b/alien/inc/TAlienFile.h
@@ -1,4 +1,4 @@
-// @(#)root/alien:$Name:  $:$Id: TAlienFile.h,v 1.0 2003/09/11 10:00:00 peters Exp $
+// @(#)root/alien:$Name:  $:$Id: TAlienFile.h,v 1.1 2003/11/13 15:15:11 rdm Exp $
 // Author: Andreas Peters 11/09/2003
 
 /*************************************************************************
@@ -41,21 +41,21 @@
 class TAlienFile : public TFile {
 
 private:
-   TUrl     fUrl;                 //URL of file
-   Seek_t   fOffset;              //seek offet
-   TFile   *fSubFile;             //sub file (PFN)
+   TUrl      fUrl;                 //URL of file
+   Long64_t  fOffset;              //seek offet
+   TFile    *fSubFile;             //sub file (PFN)
 
    TAlienFile() : fUrl("dummy") { }
 
    // Interface to basic system I/O routines
-   Int_t  SysOpen(const char *pathname, Int_t flags, UInt_t mode);
-   Int_t  SysClose(Int_t fd);
-   Int_t  SysRead(Int_t fd, void *buf, Int_t len);
-   Int_t  SysWrite(Int_t fd, const void *buf, Int_t len);
-   Seek_t SysSeek(Int_t fd, Seek_t offset, Int_t whence);
-   Int_t  SysStat(Int_t fd, Long_t *id, Long_t *size, Long_t *flags,
-                  Long_t *modtime);
-   Int_t  SysSync(Int_t);
+   Int_t    SysOpen(const char *pathname, Int_t flags, UInt_t mode);
+   Int_t    SysClose(Int_t fd);
+   Int_t    SysRead(Int_t fd, void *buf, Int_t len);
+   Int_t    SysWrite(Int_t fd, const void *buf, Int_t len);
+   Long64_t SysSeek(Int_t fd, Long64_t offset, Int_t whence);
+   Int_t    SysStat(Int_t fd, Long_t *id, Long_t *size, Long_t *flags,
+                    Long_t *modtime);
+   Int_t    SysSync(Int_t);
 
 public:
    TAlienFile(const char *url, Option_t * option = "",
diff --git a/alien/src/TAlienFile.cxx b/alien/src/TAlienFile.cxx
index 8e9f3ff8333674687e823862c779d8055d770f65..a390aa47b1f41979eea8a494d8f97b45539c0592 100644
--- a/alien/src/TAlienFile.cxx
+++ b/alien/src/TAlienFile.cxx
@@ -1,4 +1,4 @@
-// @(#)root/alien:$Name:  $:$Id: TAlienFile.cxx,v 1.0 2003/11/11 10:00:00 peters Exp $
+// @(#)root/alien:$Name:  $:$Id: TAlienFile.cxx,v 1.1 2003/11/13 15:15:11 rdm Exp $
 // Author: Andreas Peters 11/09/2003
 
 /*************************************************************************
@@ -379,7 +379,7 @@ Int_t TAlienFile::SysWrite(Int_t fd, const void *buf, Int_t len)
 }
 
 //______________________________________________________________________________
-Seek_t TAlienFile::SysSeek(Int_t fd, Seek_t offset, Int_t whence)
+Long64_t TAlienFile::SysSeek(Int_t fd, Long64_t offset, Int_t whence)
 {
    // Interface to system lseek. All arguments like in "man 2 lseek"
    // except that the offset and return value are Long_t to be able to
diff --git a/base/inc/TDirectory.h b/base/inc/TDirectory.h
index 0f20e62f3b6d2a449116640d15f5573e41068962..2bb95418a10eb714b595216b3ada5f87693df711 100644
--- a/base/inc/TDirectory.h
+++ b/base/inc/TDirectory.h
@@ -1,4 +1,4 @@
-// @(#)root/base:$Name:  $:$Id: TDirectory.h,v 1.14 2003/01/02 22:36:30 brun Exp $
+// @(#)root/base:$Name:  $:$Id: TDirectory.h,v 1.15 2003/01/17 13:58:37 brun Exp $
 // Author: Rene Brun   28/11/94
 
 /*************************************************************************
@@ -47,9 +47,9 @@ protected:
    TDatime     fDatimeM;         //Date and time of last modification
    Int_t       fNbytesKeys;      //Number of bytes for the keys
    Int_t       fNbytesName;      //Number of bytes in TNamed at creation time
-   Seek_t      fSeekDir;         //Location of directory on file
-   Seek_t      fSeekParent;      //Location of parent directory on file
-   Seek_t      fSeekKeys;        //Location of Keys record on file
+   Long64_t    fSeekDir;         //Location of directory on file
+   Long64_t    fSeekParent;      //Location of parent directory on file
+   Long64_t    fSeekKeys;        //Location of Keys record on file
    TFile      *fFile;            //pointer to current file in memory
    TObject    *fMother;          //pointer to mother of the directory
    TList      *fList;            //Pointer to objects list in memory
@@ -98,9 +98,9 @@ public:
    TObject            *GetMother() const { return fMother; }
    virtual Int_t       GetNbytesKeys() const {return fNbytesKeys;}
    virtual Int_t       GetNkeys() const {return fKeys->GetSize();}
-   virtual Seek_t      GetSeekDir() const { return fSeekDir; }
-   virtual Seek_t      GetSeekParent() const { return fSeekParent; }
-   virtual Seek_t      GetSeekKeys() const { return fSeekKeys; }
+   virtual Long64_t    GetSeekDir() const { return fSeekDir; }
+   virtual Long64_t    GetSeekParent() const { return fSeekParent; }
+   virtual Long64_t    GetSeekKeys() const { return fSeekKeys; }
    virtual const char *GetPath() const;
    TUUID               GetUUID() const {return fUUID;}
    Bool_t              IsFolder() const { return kTRUE; }
@@ -129,7 +129,7 @@ public:
    static void         DecodeNameCycle(const char *namecycle, char *name, Short_t &cycle);
    static void         EncodeNameCycle(char *buffer, const char *name, Short_t cycle);
 
-   ClassDef(TDirectory,3)  //Describe directory structure in memory
+   ClassDef(TDirectory,4)  //Describe directory structure in memory
 };
 
 R__EXTERN TDirectory   *gDirectory;
diff --git a/base/inc/TFile.h b/base/inc/TFile.h
index df222b969052417c840e47b539f6e893acf9f5f1..e3ee0485e10081daa687c0f793f3024ab679db57 100644
--- a/base/inc/TFile.h
+++ b/base/inc/TFile.h
@@ -1,4 +1,4 @@
-// @(#)root/base:$Name:  $:$Id: TFile.h,v 1.28 2003/02/26 10:11:50 brun Exp $
+// @(#)root/base:$Name:  $:$Id: TFile.h,v 1.29 2003/04/28 10:18:38 rdm Exp $
 // Author: Rene Brun   28/11/94
 
 /*************************************************************************
@@ -39,10 +39,10 @@ protected:
    Double_t    fSum2Buffer;       //Sum of squares of buffer sizes of objects written so far
    Double_t    fBytesWrite;       //Number of bytes written to this file
    Double_t    fBytesRead;        //Number of bytes read from this file
-   Seek_t      fBEGIN;            //First used byte in file
-   Seek_t      fEND;              //Last used byte in file
-   Seek_t      fSeekFree;         //Location on disk of free segments structure
-   Seek_t      fSeekInfo;         //Location on disk of StreamerInfo record
+   Long64_t    fBEGIN;            //First used byte in file
+   Long64_t    fEND;              //Last used byte in file
+   Long64_t    fSeekFree;         //Location on disk of free segments structure
+   Long64_t    fSeekInfo;         //Location on disk of StreamerInfo record
    Int_t       fD;                //File descriptor
    Int_t       fVersion;          //File format version
    Int_t       fCompress;         //Compression level from 0(not compressed) to 9 (max compression)
@@ -64,13 +64,13 @@ protected:
    void Init(Bool_t create);
 
    // Interface to basic system I/O routines
-   virtual Int_t  SysOpen(const char *pathname, Int_t flags, UInt_t mode);
-   virtual Int_t  SysClose(Int_t fd);
-   virtual Int_t  SysRead(Int_t fd, void *buf, Int_t len);
-   virtual Int_t  SysWrite(Int_t fd, const void *buf, Int_t len);
-   virtual Seek_t SysSeek(Int_t fd, Seek_t offset, Int_t whence);
-   virtual Int_t  SysStat(Int_t fd, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime);
-   virtual Int_t  SysSync(Int_t fd);
+   virtual Int_t    SysOpen(const char *pathname, Int_t flags, UInt_t mode);
+   virtual Int_t    SysClose(Int_t fd);
+   virtual Int_t    SysRead(Int_t fd, void *buf, Int_t len);
+   virtual Int_t    SysWrite(Int_t fd, const void *buf, Int_t len);
+   virtual Long64_t SysSeek(Int_t fd, Long64_t offset, Int_t whence);
+   virtual Int_t    SysStat(Int_t fd, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime);
+   virtual Int_t    SysSync(Int_t fd);
 
 private:
    TFile(const TFile &);            //Files cannot be copied
@@ -101,7 +101,7 @@ public:
    TArrayC          *GetClassIndex() const { return fClassIndex; }
    Int_t             GetCompressionLevel() const { return fCompress; }
    Float_t           GetCompressionFactor();
-   virtual Seek_t    GetEND() const { return fEND; }
+   virtual Long64_t  GetEND() const { return fEND; }
    virtual Int_t     GetErrno() const;
    virtual void      ResetErrno() const;
    Int_t             GetFd() const { return fD; }
@@ -113,17 +113,17 @@ public:
    Double_t          GetBytesRead() const { return fBytesRead; }
    Double_t          GetBytesWritten() const { return fBytesWrite; }
    Int_t             GetVersion() const { return fVersion; }
-   Int_t             GetRecordHeader(char *buf, Seek_t first, Int_t maxbytes, Int_t &nbytes, Int_t &objlen, Int_t &keylen);
+   Int_t             GetRecordHeader(char *buf, Long64_t first, Int_t maxbytes, Int_t &nbytes, Int_t &objlen, Int_t &keylen);
    virtual Int_t     GetNbytesInfo() const {return fNbytesInfo;}
    virtual Int_t     GetNbytesFree() const {return fNbytesFree;}
-   virtual Seek_t    GetSeekFree() const {return fSeekFree;}
-   virtual Seek_t    GetSeekInfo() const {return fSeekInfo;}
-   virtual Seek_t    GetSize() const;
+   virtual Long64_t  GetSeekFree() const {return fSeekFree;}
+   virtual Long64_t  GetSeekInfo() const {return fSeekInfo;}
+   virtual Long64_t  GetSize() const;
    TList            *GetStreamerInfoList();
    virtual void      IncrementProcessIDs() {fNProcessIDs++;}
    virtual Bool_t    IsOpen() const;
    virtual void      ls(Option_t *option="") const;
-   virtual void      MakeFree(Seek_t first, Seek_t last);
+   virtual void      MakeFree(Long64_t first, Long64_t last);
    virtual void      MakeProject(const char *dirname, const char *classes="*", Option_t *option="new"); // *MENU*
    virtual void      Map(); // *MENU*
    virtual void      Paint(Option_t *option="");
@@ -133,9 +133,9 @@ public:
    virtual void      ReadStreamerInfo();
    virtual Int_t     Recover();
    virtual Int_t     ReOpen(Option_t *mode);
-   virtual void      Seek(Seek_t offset, ERelativeTo pos = kBeg);
+   virtual void      Seek(Long64_t offset, ERelativeTo pos = kBeg);
    virtual void      SetCompressionLevel(Int_t level=1);
-   virtual void      SetEND(Seek_t last) { fEND = last; }
+   virtual void      SetEND(Long64_t last) { fEND = last; }
    virtual void      SetOption(Option_t *option=">") { fOption = option; }
    virtual void      ShowStreamerInfo();
    virtual Int_t     Sizeof() const;
@@ -157,7 +157,7 @@ public:
    static void       SetFileBytesRead(Double_t bytes=0);
    static void       SetFileBytesWritten(Double_t bytes=0);
 
-   ClassDef(TFile,4)  //ROOT file
+   ClassDef(TFile,5)  //ROOT file
 };
 
 R__EXTERN TFile   *gFile;
diff --git a/base/inc/TFree.h b/base/inc/TFree.h
index 57b57685b3a635bb0f3b3aab0af811c1a186dc78..99a8349f5fc6d7004908600501393fa3664da05c 100644
--- a/base/inc/TFree.h
+++ b/base/inc/TFree.h
@@ -1,4 +1,4 @@
-// @(#)root/base:$Name:  $:$Id: TFree.h,v 1.3 2000/12/13 15:13:45 brun Exp $
+// @(#)root/base:$Name:  $:$Id: TFree.h,v 1.4 2003/02/26 10:11:50 brun Exp $
 // Author: Rene Brun   28/12/94
 
 /*************************************************************************
@@ -29,21 +29,21 @@
 class TFree : public TObject {
 
 protected:
-        Seek_t        fFirst;            //First free word of segment
-        Seek_t        fLast;             //Last free word of segment
+        Long64_t        fFirst;            //First free word of segment
+        Long64_t        fLast;             //Last free word of segment
 
 public:
         TFree();
-        TFree(TList *lfree, Seek_t first, Seek_t last);
+        TFree(TList *lfree, Long64_t first, Long64_t last);
         virtual ~TFree();
-               TFree     *AddFree(TList *lfree, Seek_t first, Seek_t last);
+               TFree     *AddFree(TList *lfree, Long64_t first, Long64_t last);
         virtual void     FillBuffer(char *&buffer);
-               TFree     *GetBestFree(TList *lfree, Int_t nbytes);
-              Seek_t     GetFirst() const {return fFirst;}
-              Seek_t     GetLast() const {return fLast;}
+               TFree    *GetBestFree(TList *lfree, Int_t nbytes);
+              Long64_t   GetFirst() const {return fFirst;}
+              Long64_t   GetLast() const {return fLast;}
         virtual void     ReadBuffer(char *&buffer);
-                void     SetFirst(Seek_t first) {fFirst=first;}
-                void     SetLast(Seek_t last) {fLast=last;}
+                void     SetFirst(Long64_t first) {fFirst=first;}
+                void     SetLast(Long64_t last) {fLast=last;}
                Int_t     Sizeof() const;
 
         ClassDef(TFree,1)  //Description of free segments on a file
diff --git a/base/inc/TKey.h b/base/inc/TKey.h
index 823c7ba88ab8650f0f2e91b41c678c0382ad8e46..4b0e0e1ff5e6eae690a1e9bd6b9e20a52ebe1afd 100644
--- a/base/inc/TKey.h
+++ b/base/inc/TKey.h
@@ -1,4 +1,4 @@
-// @(#)root/base:$Name:  $:$Id: TKey.h,v 1.6 2002/02/02 11:54:34 brun Exp $
+// @(#)root/base:$Name:  $:$Id: TKey.h,v 1.7 2002/04/04 08:58:49 brun Exp $
 // Author: Rene Brun   28/12/94
 
 /*************************************************************************
@@ -43,12 +43,12 @@ protected:
     TDatime     fDatime;         //Date/Time of insertion in file
     Short_t     fKeylen;         //Number of bytes for the key itself
     Short_t     fCycle;          //Cycle number
-    Seek_t      fSeekKey;        //Location of object on file
-    Seek_t      fSeekPdir;       //Location of parent directory on file
+    Long64_t    fSeekKey;        //Location of object on file
+    Long64_t    fSeekPdir;       //Location of parent directory on file
     TString     fClassName;      //Object Class name
     Int_t       fLeft;           //Number of bytes left in current segment
-    char        *fBuffer;        //Object buffer
-    TBuffer     *fBufferRef;     //Pointer to the TBuffer object
+    char       *fBuffer;         //Object buffer
+    TBuffer    *fBufferRef;      //Pointer to the TBuffer object
 
     virtual void     Create(Int_t nbytes);
     virtual Int_t    Read(const char *name) { return TObject::Read(name); }
@@ -58,7 +58,7 @@ public:
     TKey(const char *name, const char *title, TClass *cl, Int_t nbytes);
     TKey(const TString &name, const TString &title, TClass *cl, Int_t nbytes);
     TKey(TObject *obj, const char *name, Int_t bufsize);
-    TKey(Seek_t pointer, Int_t nbytes);
+    TKey(Long64_t pointer, Int_t nbytes);
     virtual ~TKey();
     virtual void      Browse(TBrowser *b);
     virtual void      Delete(Option_t *option="");
@@ -69,12 +69,12 @@ public:
          TBuffer     *GetBufferRef() const {return fBufferRef;}
          Short_t      GetCycle() const ;
          Short_t      GetKeep() const;
-           Int_t      GetKeylen() const  {return fKeylen;}
-           Int_t      GetNbytes() const  {return fNbytes;}
-           Int_t      GetObjlen() const  {return fObjlen;}
-           Int_t      GetVersion() const {return fVersion;}
-    virtual Seek_t    GetSeekKey() const  {return fSeekKey;}
-    virtual Seek_t    GetSeekPdir() const {return fSeekPdir;}
+           Int_t      GetKeylen() const   {return fKeylen;}
+           Int_t      GetNbytes() const   {return fNbytes;}
+           Int_t      GetObjlen() const   {return fObjlen;}
+           Int_t      GetVersion() const  {return fVersion;}
+    virtual Long64_t  GetSeekKey() const  {return fSeekKey;}
+    virtual Long64_t  GetSeekPdir() const {return fSeekPdir;}
     virtual ULong_t   Hash() const;
     Bool_t            IsFolder() const;
     virtual void      Keep();
@@ -89,7 +89,7 @@ public:
     virtual Int_t     Sizeof() const;
     virtual Int_t     WriteFile(Int_t cycle=1);
 
-    ClassDef(TKey,2)  //Header description of a logical record on file
+    ClassDef(TKey,3)  //Header description of a logical record on file
 };
 
 #endif
diff --git a/base/inc/TSystem.h b/base/inc/TSystem.h
index d8e49df65270452fbb6296c9e291a1e89e7eb757..387b08d37d33c14751b69c077b83d1aa8fb8b811 100644
--- a/base/inc/TSystem.h
+++ b/base/inc/TSystem.h
@@ -1,4 +1,4 @@
-// @(#)root/base:$Name:  $:$Id: TSystem.h,v 1.31 2003/09/23 22:06:16 rdm Exp $
+// @(#)root/base:$Name:  $:$Id: TSystem.h,v 1.32 2003/12/01 07:15:26 rdm Exp $
 // Author: Fons Rademakers   15/09/95
 
 /*************************************************************************
@@ -295,7 +295,7 @@ public:
    virtual int             Link(const char *from, const char *to);
    virtual int             Symlink(const char *from, const char *to);
    virtual int             Unlink(const char *name);
-   virtual int             GetPathInfo(const char *path, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime);
+   virtual int             GetPathInfo(const char *path, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime);
    virtual int             GetFsInfo(const char *path, Long_t *id, Long_t *bsize, Long_t *blocks, Long_t *bfree);
    virtual int             Umask(Int_t mask);
    virtual int             Utime(const char *file, Long_t modtime, Long_t actime);
diff --git a/base/src/TApplication.cxx b/base/src/TApplication.cxx
index 173cb16d66873378842caa8be4e72a7b29fb1e79..5b907c262930c38a5171d575e2404c05eb544d3c 100644
--- a/base/src/TApplication.cxx
+++ b/base/src/TApplication.cxx
@@ -1,4 +1,4 @@
-// @(#)root/base:$Name:  $:$Id: TApplication.cxx,v 1.48 2003/10/22 17:20:50 rdm Exp $
+// @(#)root/base:$Name:  $:$Id: TApplication.cxx,v 1.49 2003/11/24 19:54:54 brun Exp $
 // Author: Fons Rademakers   22/12/95
 
 /*************************************************************************
@@ -304,7 +304,8 @@ void TApplication::GetOptions(int *argc, char **argv)
          // splash screen can be popped down (TRint::PrintLogo())
          argv[i] = 0;
       } else if (argv[i][0] != '-' && argv[i][0] != '+') {
-         Long_t id, size, flags, modtime;
+         Long64_t size;
+         Long_t id, flags, modtime;
          char *arg = strchr(argv[i], '(');
          if (arg) *arg = '\0';
          char *dir = gSystem->ExpandPathName(argv[i]);
diff --git a/base/src/TDirectory.cxx b/base/src/TDirectory.cxx
index 045185de12066464f08deb049f34bbb038ef1294..3ba939d69e830b7b6376bd903e8f0254df04cbce 100644
--- a/base/src/TDirectory.cxx
+++ b/base/src/TDirectory.cxx
@@ -1,4 +1,4 @@
-// @(#)root/base:$Name:  $:$Id: TDirectory.cxx,v 1.37 2003/06/02 09:53:15 brun Exp $
+// @(#)root/base:$Name:  $:$Id: TDirectory.cxx,v 1.38 2003/06/30 12:12:05 brun Exp $
 // Author: Rene Brun   28/11/94
 
 /*************************************************************************
@@ -108,7 +108,6 @@ TDirectory::TDirectory(const char *name, const char *title, Option_t *classname)
    }
    fWritable    = kTRUE;
    fSeekParent  = gFile->GetSeekDir();
-   if (gFile && gFile->GetEND() > TFile::kStartBigFile) SetBit(kIsBigFile);
    Int_t nbytes = TDirectory::Sizeof();
    TKey *key    = new TKey(fName,fTitle,cl,nbytes);
    fNbytesName  = key->GetKeylen();
@@ -679,16 +678,16 @@ void TDirectory::FillBuffer(char *&buffer)
 //*-*-*-*-*-*-*-*-*-*-*-*Encode directory header into output buffer*-*-*-*-*-*
 //*-*                    =========================================
    Version_t version = TDirectory::Class_Version();
-   if (TestBit(kIsBigFile)) version += 1000;
+   if (fSeekKeys > TFile::kStartBigFile) version += 1000;
    tobuf(buffer, version);
    fDatimeC.FillBuffer(buffer);
    fDatimeM.FillBuffer(buffer);
    tobuf(buffer, fNbytesKeys);
    tobuf(buffer, fNbytesName);
    if (version > 1000) {
-      tobuf(buffer, (Long_t)fSeekDir);
-      tobuf(buffer, (Long_t)fSeekParent);
-      tobuf(buffer, (Long_t)fSeekKeys);
+      tobuf(buffer, fSeekDir);
+      tobuf(buffer, fSeekParent);
+      tobuf(buffer, fSeekKeys);
    } else {
       tobuf(buffer, (Int_t)fSeekDir);
       tobuf(buffer, (Int_t)fSeekParent);
@@ -1151,20 +1150,19 @@ Int_t TDirectory::ReadKeys()
    frombuf(buffer, &fNbytesKeys);
    frombuf(buffer, &fNbytesName);
    if (versiondir > 1000) {
-      Long_t sdir,sparent,skeys;
-      frombuf(buffer, &sdir);    fSeekDir    = (Seek_t)sdir;
-      frombuf(buffer, &sparent); fSeekParent = (Seek_t)sparent;
-      frombuf(buffer, &skeys);   fSeekKeys   = (Seek_t)skeys;
+      frombuf(buffer, &fSeekDir);
+      frombuf(buffer, &fSeekParent);
+      frombuf(buffer, &fSeekKeys);
    } else {
       Int_t sdir,sparent,skeys;
-      frombuf(buffer, &sdir);    fSeekDir    = (Seek_t)sdir;
-      frombuf(buffer, &sparent); fSeekParent = (Seek_t)sparent;
-      frombuf(buffer, &skeys);   fSeekKeys   = (Seek_t)skeys;
+      frombuf(buffer, &sdir);    fSeekDir    = (Long64_t)sdir;
+      frombuf(buffer, &sparent); fSeekParent = (Long64_t)sparent;
+      frombuf(buffer, &skeys);   fSeekKeys   = (Long64_t)skeys;
    }
    delete [] header;
 
    Int_t nkeys = 0;
-   Long_t fsize = fFile->GetSize();
+   Long64_t fsize = fFile->GetSize();
    if ( fSeekKeys >  0) {
       TKey *headerkey    = new TKey(fSeekKeys,fNbytesKeys);
       headerkey->ReadFile();
@@ -1302,7 +1300,7 @@ Int_t TDirectory::Sizeof() const
    nbytes     += fDatimeC.Sizeof();
    nbytes     += fDatimeM.Sizeof();
    nbytes     += fUUID.Sizeof();
-   if (TestBit(kIsBigFile)) nbytes += 12;
+   nbytes += 12; //always assume that the file may be above 2 Gbytes
    return nbytes;
 }
 
@@ -1323,15 +1321,14 @@ void TDirectory::Streamer(TBuffer &b)
       b >> fNbytesName;
       if (version > 1000) {
          SetBit(kIsBigFile);
-         Long_t sdir,sparent,skeys;
-         b >> sdir;    fSeekDir    = (Seek_t)sdir;
-         b >> sparent; fSeekParent = (Seek_t)sparent;
-         b >> skeys;   fSeekKeys   = (Seek_t)skeys;
+         b >> fSeekDir;
+         b >> fSeekParent;
+         b >> fSeekKeys;
       } else {
          Int_t sdir,sparent,skeys;
-         b >> sdir;    fSeekDir    = (Seek_t)sdir;
-         b >> sparent; fSeekParent = (Seek_t)sparent;
-         b >> skeys;   fSeekKeys   = (Seek_t)skeys;
+         b >> sdir;    fSeekDir    = (Long64_t)sdir;
+         b >> sparent; fSeekParent = (Long64_t)sparent;
+         b >> skeys;   fSeekKeys   = (Long64_t)skeys;
       }
       v = version%1000;
       if (v == 2) {
@@ -1343,16 +1340,16 @@ void TDirectory::Streamer(TBuffer &b)
       if (fSeekKeys) ReadKeys();
    } else {
       version = TDirectory::Class_Version();
-      if (TestBit(kIsBigFile)) version += 1000;
+      if (fFile && fFile->GetEND() > TFile::kStartBigFile) version += 1000;
       b << version;
       fDatimeC.Streamer(b);
       fDatimeM.Streamer(b);
       b << fNbytesKeys;
       b << fNbytesName;
       if (version > 1000) {
-         b << (Long_t)fSeekDir;
-         b << (Long_t)fSeekParent;
-         b << (Long_t)fSeekKeys;
+         b << fSeekDir;
+         b << fSeekParent;
+         b << fSeekKeys;
       } else {
          b << (Int_t)fSeekDir;
          b << (Int_t)fSeekParent;
@@ -1398,7 +1395,7 @@ void TDirectory::WriteDirHeader()
    char * buffer = header;
    fDatimeM.Set();
    TDirectory::FillBuffer(buffer);
-   Seek_t pointer= fSeekDir + fNbytesName; // do not overwrite the name/title part
+   Long64_t pointer= fSeekDir + fNbytesName; // do not overwrite the name/title part
    fModified     = kFALSE;
    gFile->Seek(pointer);
    gFile->WriteBuffer(header, nbytes);
@@ -1423,6 +1420,7 @@ void TDirectory::WriteKeys()
    TKey *key;
    Int_t nkeys  = fKeys->GetSize();
    Int_t nbytes = sizeof nkeys;          //*-* Compute size of all keys
+   if (gFile && gFile->GetEND() > TFile::kStartBigFile) nbytes += 8;
    while ((key = (TKey*)next())) {
       nbytes += key->Sizeof();
    }
diff --git a/base/src/TFile.cxx b/base/src/TFile.cxx
index fa1da2b5096beabd2ac4abf8b23716e5f76dee4b..51954183e1f2070c23210f98b08721a530f39d92 100644
--- a/base/src/TFile.cxx
+++ b/base/src/TFile.cxx
@@ -1,4 +1,4 @@
-// @(#)root/base:$Name:  $:$Id: TFile.cxx,v 1.102 2003/09/27 18:45:45 rdm Exp $
+// @(#)root/base:$Name:  $:$Id: TFile.cxx,v 1.103 2003/11/07 03:29:41 rdm Exp $
 // Author: Rene Brun   28/11/94
 
 /*************************************************************************
@@ -8,7 +8,6 @@
  * For the licensing terms see $ROOTSYS/LICENSE.                         *
  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
  *************************************************************************/
-
 #include <fcntl.h>
 #include <errno.h>
 #include <sys/stat.h>
@@ -349,10 +348,8 @@ void TFile::Init(Bool_t create)
 {
    // Initialize a TFile object.
 
-   Seek_t max_file_size = kStartBigFile;
-   if (sizeof(Seek_t) > 4) max_file_size *= 500;
    Int_t nfree;
-   fBEGIN  = (Seek_t)kBEGIN;    //First used word in file following the file header
+   fBEGIN  = (Long64_t)kBEGIN;    //First used word in file following the file header
 
    // make newly opened file the current file and directory
    cd();
@@ -361,7 +358,7 @@ void TFile::Init(Bool_t create)
    if (create) {
       fFree        = new TList;
       fEND         = fBEGIN;    //Pointer to end of file
-      new TFree(fFree, fBEGIN, max_file_size);  //Create new free list
+      new TFree(fFree, fBEGIN, Long64_t(kStartBigFile));  //Create new free list
 
 //*-* Write Directory info
       Int_t namelen= TNamed::Sizeof();
@@ -395,28 +392,27 @@ void TFile::Init(Bool_t create)
       frombuf(buffer, &fVersion);
       Int_t headerLength;
       frombuf(buffer, &headerLength);
-      fBEGIN = (Seek_t)headerLength;
+      fBEGIN = (Long64_t)headerLength;
       if (fVersion < 1000000) { //small file
          Int_t send,sfree,sinfo;
-         frombuf(buffer, &send);         fEND     = (Seek_t)send;
-         frombuf(buffer, &sfree);        fSeekFree= (Seek_t)sfree;
+         frombuf(buffer, &send);         fEND     = (Long64_t)send;
+         frombuf(buffer, &sfree);        fSeekFree= (Long64_t)sfree;
          frombuf(buffer, &fNbytesFree);
          frombuf(buffer, &nfree);
          frombuf(buffer, &fNbytesName);
          frombuf(buffer, &fUnits );
          frombuf(buffer, &fCompress);
-         frombuf(buffer, &sinfo);        fSeekInfo = (Seek_t)sinfo;
+         frombuf(buffer, &sinfo);        fSeekInfo = (Long64_t)sinfo;
          frombuf(buffer, &fNbytesInfo);
       } else { // new format to support large files
-         Long_t send,sfree,sinfo;
-         frombuf(buffer, &send);         fEND     = (Seek_t)send;
-         frombuf(buffer, &sfree);        fSeekFree= (Seek_t)sfree;
+         frombuf(buffer, &fEND);
+         frombuf(buffer, &fSeekFree);
          frombuf(buffer, &fNbytesFree);
          frombuf(buffer, &nfree);
          frombuf(buffer, &fNbytesName);
          frombuf(buffer, &fUnits );
          frombuf(buffer, &fCompress);
-         frombuf(buffer, &sinfo);        fSeekInfo = (Seek_t)sinfo;
+         frombuf(buffer, &fSeekInfo);
          frombuf(buffer, &fNbytesInfo);
       }
       fSeekDir = fBEGIN;
@@ -444,18 +440,17 @@ void TFile::Init(Bool_t create)
       frombuf(buffer, &fNbytesKeys);
       frombuf(buffer, &fNbytesName);
       Int_t nk = sizeof(Int_t) +sizeof(Version_t) +2*sizeof(Int_t)+2*sizeof(Short_t)
-                +2*sizeof(Seek_t);
+                +2*sizeof(Int_t);
       if (version > 1000) {
          nk += 12;
-         Long_t sdir,sparent,skeys;
-         frombuf(buffer, &sdir);    fSeekDir    = (Seek_t)sdir;
-         frombuf(buffer, &sparent); fSeekParent = (Seek_t)sparent;
-         frombuf(buffer, &skeys);   fSeekKeys   = (Seek_t)skeys;
+         frombuf(buffer, &fSeekDir);
+         frombuf(buffer, &fSeekParent);
+         frombuf(buffer, &fSeekKeys);
       } else {
          Int_t sdir,sparent,skeys;
-         frombuf(buffer, &sdir);    fSeekDir    = (Seek_t)sdir;
-         frombuf(buffer, &sparent); fSeekParent = (Seek_t)sparent;
-         frombuf(buffer, &skeys);   fSeekKeys   = (Seek_t)skeys;
+         frombuf(buffer, &sdir);    fSeekDir    = (Long64_t)sdir;
+         frombuf(buffer, &sparent); fSeekParent = (Long64_t)sparent;
+         frombuf(buffer, &skeys);   fSeekKeys   = (Long64_t)skeys;
       }
       if (versiondir > 1) fUUID.ReadBuffer(buffer);
 
@@ -471,7 +466,7 @@ void TFile::Init(Bool_t create)
          goto zombie;
       }
 //*-* -------------Check if file is truncated
-      Long_t size;
+      Long64_t size;
       if ((size = GetSize()) == -1) {
          Error("Init", "cannot stat the file %s", GetName());
          goto zombie;
@@ -723,7 +718,7 @@ Float_t TFile::GetCompressionFactor()
    Int_t    nbytes, objlen, nwh = 64;
    char    *header = new char[fBEGIN];
    char    *buffer;
-   Seek_t   idcur = fBEGIN;
+   Long64_t   idcur = fBEGIN;
    Float_t comp,uncomp;
    comp = uncomp = fBEGIN;
 
@@ -769,7 +764,7 @@ void TFile::ResetErrno() const
 }
 
 //______________________________________________________________________________
-Int_t TFile::GetRecordHeader(char *buf, Seek_t first, Int_t maxbytes, Int_t &nbytes, Int_t &objlen, Int_t &keylen)
+Int_t TFile::GetRecordHeader(char *buf, Long64_t first, Int_t maxbytes, Int_t &nbytes, Int_t &objlen, Int_t &keylen)
 {
 //*-*-*-*-*-*-*-*-*Read the logical record header starting at position first
 //*-*              =========================================================
@@ -818,12 +813,13 @@ Int_t TFile::GetRecordHeader(char *buf, Seek_t first, Int_t maxbytes, Int_t &nby
 }
 
 //______________________________________________________________________________
-Seek_t TFile::GetSize() const
+Long64_t TFile::GetSize() const
 {
    // Returns the current file size. Returns -1 in case the file could not
    // be stat'ed.
 
-   Long_t id, size, flags, modtime;
+   Long64_t size;
+   Long_t id, flags, modtime;
 
    if (const_cast<TFile*>(this)->SysStat(fD, &id, &size, &flags, &modtime)) {
       Error("GetSize", "cannot stat the file %s", GetName());
@@ -902,7 +898,7 @@ Bool_t TFile::IsOpen() const
 }
 
 //______________________________________________________________________________
-void TFile::MakeFree(Seek_t first, Seek_t last)
+void TFile::MakeFree(Long64_t first, Long64_t last)
 {
 //*-*-*-*-*-*-*-*-*-*-*-*Mark unused bytes on the file*-*-*-*-*-*-*-*-*-*-*
 //*-*                    =============================
@@ -918,12 +914,14 @@ void TFile::MakeFree(Seek_t first, Seek_t last)
    if (!f1) return;
    TFree *newfree = f1->AddFree(fFree,first,last);
    if(!newfree) return;
-   Seek_t nfirst  = newfree->GetFirst();
-   Seek_t nlast   = newfree->GetLast();
-   Int_t nbytes   = Int_t (nfirst - nlast -1);
-   Int_t nb       = sizeof(Int_t);
-   char * buffer  = new char[nb];
-   char * psave   = buffer;
+   Long64_t nfirst = newfree->GetFirst();
+   Long64_t nlast  = newfree->GetLast();
+   Long64_t nbytesl= nlast-nfirst+1;
+   if (nbytesl > 2000000000) nbytesl = 2000000000;
+   Int_t nbytes    = -Int_t (nbytesl);
+   Int_t nb        = sizeof(Int_t);
+   char * buffer   = new char[nb];
+   char * psave    = buffer;
    tobuf(buffer, nbytes);
    if (nlast == fEND-1) fEND = nfirst;
    Seek(nfirst);
@@ -971,10 +969,10 @@ void TFile::Map()
    Short_t  keylen,cycle;
    UInt_t   datime;
    Int_t    nbytes,date,time,objlen,nwheader;
-   Seek_t   seekkey,seekpdir;
+   Long64_t seekkey,seekpdir;
    char    *buffer;
    char     nwhc;
-   Seek_t   idcur = fBEGIN;
+   Long64_t idcur = fBEGIN;
 
    nwheader = 64;
    Int_t nread = nwheader;
@@ -989,11 +987,11 @@ void TFile::Map()
       buffer=header;
       frombuf(buffer, &nbytes);
       if (!nbytes) {
-         Printf("Address = %d\tNbytes = %d\t=====E R R O R=======", idcur, nbytes);
+         Printf("Address = %lld\tNbytes = %d\t=====E R R O R=======", idcur, nbytes);
          break;
       }
       if (nbytes < 0) {
-         Printf("Address = %d\tNbytes = %d\t=====G A P===========", idcur, nbytes);
+         Printf("Address = %lld\tNbytes = %d\t=====G A P===========", idcur, nbytes);
          idcur -= nbytes;
          Seek(idcur);
          continue;
@@ -1005,13 +1003,12 @@ void TFile::Map()
       frombuf(buffer, &keylen);
       frombuf(buffer, &cycle);
       if (versionkey > 1000) {
-         Long_t skey,sdir;
-         frombuf(buffer, &skey);  seekkey  = (Seek_t)skey;
-         frombuf(buffer, &sdir);  seekpdir = (Seek_t)sdir;
+         frombuf(buffer, &seekkey);
+         frombuf(buffer, &seekpdir);
       } else {
          Int_t skey,sdir;
-         frombuf(buffer, &skey);  seekkey  = (Seek_t)skey;
-         frombuf(buffer, &sdir);  seekpdir = (Seek_t)sdir;
+         frombuf(buffer, &skey);  seekkey  = (Long64_t)skey;
+         frombuf(buffer, &sdir);  seekpdir = (Long64_t)sdir;
       }
       frombuf(buffer, &nwhc);
       int i;
@@ -1023,13 +1020,16 @@ void TFile::Map()
       TDatime::GetDateTime(datime, date, time);
       if (objlen != nbytes-keylen) {
          Float_t cx = Float_t(objlen+keylen)/Float_t(nbytes);
-         Printf("%d/%06d  At:%-8d  N=%-8d  %-14s CX = %5.2f",date,time,idcur,nbytes,classname,cx);
+         //Printf("%d/%06d  At:%-8d  N=%-8d  %-14s CX = %5.2f",date,time,idcur,nbytes,classname,cx);
+         Printf("%d/%06d  At:%lld  N=%-8d  %-14s CX = %5.2f",date,time,idcur,nbytes,classname,cx);
       } else {
-         Printf("%d/%06d  At:%-8d  N=%-8d  %-14s",date,time,idcur,nbytes,classname);
+         //Printf("%d/%06d  At:%-8d  N=%-8d  %-14s",date,time,idcur,nbytes,classname);
+         Printf("%d/%06d  At:%lld  N=%-8d  %-14s",date,time,idcur,nbytes,classname);
       }
       idcur += nbytes;
    }
-   Printf("%d/%06d  At:%-8d  N=%-8d  %-14s",date,time,idcur,1,"END");
+   //Printf("%d/%06d  At:%-8d  N=%-8d  %-14s",date,time,idcur,1,"END");
+   Printf("%d/%06d  At:%lld  N=%-8d  %-14s",date,time,idcur,1,"END");
 }
 
 //______________________________________________________________________________
@@ -1117,19 +1117,19 @@ Int_t TFile::Recover()
    Short_t  keylen,cycle;
    UInt_t   datime;
    Int_t    nbytes,date,time,objlen,nwheader;
-   Seek_t   seekkey,seekpdir;
+   Long64_t seekkey,seekpdir;
    char     header[1024];
    char    *buffer, *bufread;
    char     nwhc;
-   Seek_t   idcur = fBEGIN;
+   Long64_t idcur = fBEGIN;
 
-   Long_t size;
+   Long64_t size;
    if ((size = GetSize()) == -1) {
       Error("Recover", "cannot stat the file %s", GetName());
       return 0;
    }
 
-   fEND = Seek_t(size);
+   fEND = Long64_t(size);
 
    if (fWritable && !fFree) fFree  = new TList;
 
@@ -1146,7 +1146,7 @@ Int_t TFile::Recover()
       bufread = header;
       frombuf(buffer, &nbytes);
       if (!nbytes) {
-         Printf("Address = %d\tNbytes = %d\t=====E R R O R=======", idcur, nbytes);
+         Printf("Address = %lld\tNbytes = %d\t=====E R R O R=======", idcur, nbytes);
          break;
       }
       if (nbytes < 0) {
@@ -1162,16 +1162,17 @@ Int_t TFile::Recover()
       frombuf(buffer, &keylen);
       frombuf(buffer, &cycle);
       if (versionkey > 1000) {
-         Long_t skey,sdir;
-         frombuf(buffer, &skey);  seekkey  = (Seek_t)skey;
-         frombuf(buffer, &sdir);  seekpdir = (Seek_t)sdir;
+         frombuf(buffer, &seekkey);
+         frombuf(buffer, &seekpdir);
       } else {
          Int_t skey,sdir;
-         frombuf(buffer, &skey);  seekkey  = (Seek_t)skey;
-         frombuf(buffer, &sdir);  seekpdir = (Seek_t)sdir;
+         frombuf(buffer, &skey);  seekkey  = (Long64_t)skey;
+         frombuf(buffer, &sdir);  seekpdir = (Long64_t)sdir;
       }
       frombuf(buffer, &nwhc);
-      char *classname = new char[nwhc+1];
+      char *classname = 0;
+      if (nwhc <= 0 || nwhc > 100) break;
+      classname = new char[nwhc+1];
       int i;
       for (i = 0;i < nwhc; i++) frombuf(buffer, &classname[i]);
       classname[nwhc] = '\0';
@@ -1186,15 +1187,15 @@ Int_t TFile::Recover()
             AppendKey(key);
             nrecov++;
             SetBit(kRecovered);
-            Info("Recover", "%s, recovered key %s:%s at address %d",GetName(),key->GetClassName(),key->GetName(),idcur);
+            Info("Recover", "%s, recovered key %s:%s at address %lld",GetName(),key->GetClassName(),key->GetName(),idcur);
          }
       }
       delete [] classname;
       idcur += nbytes;
    }
    if (fWritable) {
-      Seek_t max_file_size = kStartBigFile;
-      if (sizeof(Seek_t) > 4) max_file_size *= 500;
+      Long64_t max_file_size = Long64_t(kStartBigFile);
+      if (max_file_size < fEND) max_file_size = fEND+1000000000;
       new TFree(fFree,fEND,max_file_size);
       if (nrecov) Write();
    }
@@ -1300,7 +1301,7 @@ Int_t TFile::ReOpen(Option_t *mode)
 }
 
 //______________________________________________________________________________
-void TFile::Seek(Seek_t offset, ERelativeTo pos)
+void TFile::Seek(Long64_t offset, ERelativeTo pos)
 {
    // Seek to a specific position in the file. Pos it either kBeg, kCur or kEnd.
 
@@ -1316,8 +1317,8 @@ void TFile::Seek(Seek_t offset, ERelativeTo pos)
       whence = SEEK_END;
       break;
    }
-   if (SysSeek(fD, offset, whence) < 0)
-      SysError("Seek", "cannot seek to position %d in file %s", offset, GetName());
+   if (Long64_t retpos = SysSeek(fD, offset, whence) < 0)
+      SysError("Seek", "cannot seek to position %lld in file %s, retpos=%lld", offset, GetName(),retpos);
 }
 
 //______________________________________________________________________________
@@ -1552,14 +1553,14 @@ void TFile::WriteHeader()
       tobuf(buffer, (Int_t)fSeekInfo);
       tobuf(buffer, fNbytesInfo);
    } else {
-      tobuf(buffer, (Long_t)fEND);
-      tobuf(buffer, (Long_t)fSeekFree);
+      tobuf(buffer, fEND);
+      tobuf(buffer, fSeekFree);
       tobuf(buffer, fNbytesFree);
       tobuf(buffer, nfree);
       tobuf(buffer, fNbytesName);
       tobuf(buffer, fUnits);
       tobuf(buffer, fCompress);
-      tobuf(buffer, (Long_t)fSeekInfo);
+      tobuf(buffer, fSeekInfo);
       tobuf(buffer, fNbytesInfo);
    }
    fUUID.FillBuffer(buffer);
@@ -1991,7 +1992,7 @@ Int_t TFile::SysOpen(const char *pathname, Int_t flags, UInt_t mode)
    // although this is posix default it has to be set explicitly
    return ::open(pathname, flags | O_BINARY, mode);
 #else
-   return ::open(pathname, flags, mode);
+   return ::open(pathname, flags | O_LARGEFILE, mode);
 #endif
 }
 
@@ -2020,17 +2021,21 @@ Int_t TFile::SysWrite(Int_t fd, const void *buf, Int_t len)
 }
 
 //______________________________________________________________________________
-Seek_t TFile::SysSeek(Int_t fd, Seek_t offset, Int_t whence)
+Long64_t TFile::SysSeek(Int_t fd, Long64_t offset, Int_t whence)
 {
    // Interface to system lseek. All arguments like in POSIX lseek()
    // except that the offset and return value are of a type which will
    // be able to handle 64 bit file systems in the future.
 
+#if defined (R__LINUX)
+   return ::lseek64(fd, offset, whence);
+#else
    return ::lseek(fd, offset, whence);
+#endif
 }
 
 //______________________________________________________________________________
-Int_t TFile::SysStat(Int_t, Long_t *id, Long_t *size, Long_t *flags,
+Int_t TFile::SysStat(Int_t, Long_t *id, Long64_t *size, Long_t *flags,
                      Long_t *modtime)
 {
    // Return file stat information. The interface and return value is
diff --git a/base/src/TFree.cxx b/base/src/TFree.cxx
index dd5537b8c57550199be38c148ae0ab035ffa0ee3..3c3cff08aabd456d2266c310a048be5a4bbcd8cc 100644
--- a/base/src/TFree.cxx
+++ b/base/src/TFree.cxx
@@ -1,4 +1,4 @@
-// @(#)root/base:$Name:  $:$Id: TFree.cxx,v 1.3 2003/02/26 10:11:51 brun Exp $
+// @(#)root/base:$Name:  $:$Id: TFree.cxx,v 1.4 2003/02/26 14:59:28 brun Exp $
 // Author: Rene Brun   28/12/94
 
 /*************************************************************************
@@ -40,7 +40,7 @@ TFree::TFree()
 }
 
 //______________________________________________________________________________
-TFree::TFree(TList *lfree, Seek_t first, Seek_t last)
+TFree::TFree(TList *lfree, Long64_t first, Long64_t last)
 {
 //*-*-*-*-*-*-*-*-*-*-*Constructor for a FREE segment*-*-*-*-*-*-*-*-*-*-*-*-*
 //*-*                  ==============================
@@ -50,7 +50,7 @@ TFree::TFree(TList *lfree, Seek_t first, Seek_t last)
 }
 
 //______________________________________________________________________________
-TFree *TFree::AddFree(TList *lfree, Seek_t first, Seek_t last)
+TFree *TFree::AddFree(TList *lfree, Long64_t first, Long64_t last)
 {
 //*-*-*-*-*-*-*-*-*-*Add a new free segment to the list of free segments*-*-*
 //*-*                ===================================================
@@ -64,8 +64,8 @@ TFree *TFree::AddFree(TList *lfree, Seek_t first, Seek_t last)
 //
    TFree *idcur = this;
    while (idcur) {
-      Seek_t curfirst = idcur->GetFirst();
-      Seek_t curlast  = idcur->GetLast();
+      Long64_t curfirst = idcur->GetFirst();
+      Long64_t curlast  = idcur->GetLast();
       if (curlast == first-1) {
          idcur->SetLast(last);
          TFree *idnext = (TFree*)lfree->After(idcur);
@@ -107,9 +107,10 @@ void TFree::FillBuffer(char *&buffer)
    Version_t version = TFree::Class_Version();
    if (fLast > TFile::kStartBigFile) version += 1000;
    tobuf(buffer, version);
+//printf("TFree::fillBuffer, fFirst=%lld, fLast=%lld, version=%d\n",fFirst,fLast,version);
    if (version > 1000) {
-      tobuf(buffer, (Long_t)fFirst);
-      tobuf(buffer, (Long_t)fLast);
+      tobuf(buffer, fFirst);
+      tobuf(buffer, fLast);
    } else {
       tobuf(buffer, (Int_t)fFirst);
       tobuf(buffer, (Int_t)fLast);
@@ -125,13 +126,18 @@ TFree *TFree::GetBestFree(TList *lfree, Int_t nbytes)
    if (idcur == 0) return 0;
    TFree *idcur1 = 0;
    do {
-      Seek_t nleft = Seek_t(idcur->fLast - idcur->fFirst +1);
+      Long64_t nleft = Long64_t(idcur->fLast - idcur->fFirst +1);
       if (nleft == nbytes) return idcur;             //*-* found an exact match
-      if(nleft > nbytes+3) if (idcur1 == 0) idcur1=idcur;
+      if(nleft > (Long64_t)(nbytes+3)) if (idcur1 == 0) idcur1=idcur;
       idcur = (TFree*)lfree->After(idcur);
    } while (idcur !=0);
-   return idcur1;                                    //*-* return first segment >nbytes
-}
+   if (idcur1) return idcur1;                                    //*-* return first segment >nbytes
+   //try big file
+   idcur = (TFree*)lfree->Last();
+   Long64_t last = idcur->fLast+1000000000;
+   idcur->SetLast(last);
+   return idcur;
+   }
 
 //______________________________________________________________________________
 void TFree::ReadBuffer(char *&buffer)
@@ -141,13 +147,12 @@ void TFree::ReadBuffer(char *&buffer)
    Version_t version;
    frombuf(buffer, &version);
    if (version > 1000) {
-      Long_t first,last;
-      frombuf(buffer, &first);  fFirst = (Seek_t)first;
-      frombuf(buffer, &last);   fLast  = (Seek_t)last;
+      frombuf(buffer, &fFirst);
+      frombuf(buffer, &fLast);
    } else {
       Int_t first,last;
-      frombuf(buffer, &first);  fFirst = (Seek_t)first;
-      frombuf(buffer, &last);   fLast  = (Seek_t)last;
+      frombuf(buffer, &first);  fFirst = (Long64_t)first;
+      frombuf(buffer, &last);   fLast  = (Long64_t)last;
    }
 }
 
diff --git a/base/src/TKey.cxx b/base/src/TKey.cxx
index 2fe8d42bc29b91c6365001c09b677c8992cbab05..20c6ddab0a3ba2ede547f1146a952c7021be12c2 100644
--- a/base/src/TKey.cxx
+++ b/base/src/TKey.cxx
@@ -1,4 +1,4 @@
-// @(#)root/base:$Name:  $:$Id: TKey.cxx,v 1.35 2003/12/10 20:36:34 brun Exp $
+// @(#)root/base:$Name:  $:$Id: TKey.cxx,v 1.36 2003/12/10 20:40:45 brun Exp $
 // Author: Rene Brun   28/12/94
 
 /*************************************************************************
@@ -83,7 +83,7 @@ TKey::TKey() : TNamed(), fDatime((UInt_t)0)
 }
 
 //______________________________________________________________________________
-TKey::TKey(Seek_t pointer, Int_t nbytes) : TNamed()
+TKey::TKey(Long64_t pointer, Int_t nbytes) : TNamed()
 {
 //*-*-*-*-*-*-*-*-*-*-*-*-*Create a TKey object to read keys*-*-*-*-*-*-*-*
 //*-*                      =================================
@@ -314,9 +314,9 @@ void TKey::Delete(Option_t *option)
 // This is different from the behaviour of TObject::Delete()!
 
 
-   if (option && option[0] == 'v') printf("Deleting key: %s at address %d, nbytes = %d\n",GetName(),fSeekKey,fNbytes);
-   Seek_t first = fSeekKey;
-   Seek_t last  = fSeekKey + fNbytes -1;
+   if (option && option[0] == 'v') printf("Deleting key: %s at address %lld, nbytes = %d\n",GetName(),fSeekKey,fNbytes);
+   Long64_t first = fSeekKey;
+   Long64_t last  = fSeekKey + fNbytes -1;
    gFile->MakeFree(first, last);  // release space used by this key
    gDirectory->GetListOfKeys()->Remove(this);
 }
@@ -365,8 +365,8 @@ void TKey::FillBuffer(char *&buffer)
   tobuf(buffer, fKeylen);
   tobuf(buffer, fCycle);
   if (fVersion > 1000) {
-     tobuf(buffer, (Long_t)fSeekKey);
-     tobuf(buffer, (Long_t)fSeekPdir);
+     tobuf(buffer, fSeekKey);
+     tobuf(buffer, fSeekPdir);
   } else {
      tobuf(buffer, (Int_t)fSeekKey);
      tobuf(buffer, (Int_t)fSeekPdir);
@@ -621,13 +621,12 @@ void TKey::ReadBuffer(char *&buffer)
    frombuf(buffer, &fKeylen);
    frombuf(buffer, &fCycle);
    if (fVersion > 1000) {
-      Long_t seekkey,seekdir;
-      frombuf(buffer, &seekkey); fSeekKey = (Seek_t)seekkey;
-      frombuf(buffer, &seekdir); fSeekPdir= (Seek_t)seekdir;
+      frombuf(buffer, &fSeekKey);
+      frombuf(buffer, &fSeekPdir);
    } else {
       Int_t seekkey,seekdir;
-      frombuf(buffer, &seekkey); fSeekKey = (Seek_t)seekkey;
-      frombuf(buffer, &seekdir); fSeekPdir= (Seek_t)seekdir;
+      frombuf(buffer, &seekkey); fSeekKey = (Long64_t)seekkey;
+      frombuf(buffer, &seekdir); fSeekPdir= (Long64_t)seekdir;
    }
    fClassName.ReadBuffer(buffer);
    fName.ReadBuffer(buffer);
@@ -702,13 +701,12 @@ void TKey::Streamer(TBuffer &b)
       b >> fKeylen;
       b >> fCycle;
       if (fVersion > 1000) {
-         Long_t seekkey, seekdir;
-         b >> seekkey; fSeekKey = (Seek_t)seekkey;
-         b >> seekdir; fSeekPdir= (Seek_t)seekdir;
+         b >> fSeekKey;
+         b >> fSeekPdir;
       } else {
          Int_t seekkey, seekdir;
-         b >> seekkey; fSeekKey = (Seek_t)seekkey;
-         b >> seekdir; fSeekPdir= (Seek_t)seekdir;
+         b >> seekkey; fSeekKey = (Long64_t)seekkey;
+         b >> seekdir; fSeekPdir= (Long64_t)seekdir;
       }
       fClassName.Streamer(b);
       fName.Streamer(b);
@@ -723,8 +721,8 @@ void TKey::Streamer(TBuffer &b)
       b << fKeylen;
       b << fCycle;
       if (fVersion > 1000) {
-         b << (Long_t)fSeekKey;
-         b << (Long_t)fSeekPdir;
+         b << fSeekKey;
+         b << fSeekPdir;
       } else {
          b << (Int_t)fSeekKey;
          b << (Int_t)fSeekPdir;
diff --git a/base/src/TMD5.cxx b/base/src/TMD5.cxx
index a88822b66de022ded5a7fb1fbbb0d6937bf7cbb3..772c738811ac8b4c86e4e7cab68e2674bde0174b 100644
--- a/base/src/TMD5.cxx
+++ b/base/src/TMD5.cxx
@@ -1,4 +1,4 @@
-// @(#)root/base:$Name:  $:$Id: TMD5.cxx,v 1.11 2002/12/02 18:50:01 rdm Exp $
+// @(#)root/base:$Name:  $:$Id: TMD5.cxx,v 1.12 2003/03/06 17:09:42 rdm Exp $
 // Author: Fons Rademakers   29/9/2001
 
 /*************************************************************************
@@ -456,7 +456,8 @@ TMD5 *TMD5::FileChecksum(const char *file)
    // so it can be safely used in conjunction with methods that keep track
    // of the file's modtime. Static utility function.
 
-   Long_t id, size, flags, modtime;
+   Long64_t size;
+   Long_t id, flags, modtime;
    if (gSystem->GetPathInfo(file, &id, &size, &flags, &modtime) == 0) {
       if (flags > 1) {
          Error("TMD5::FileChecksum", "%s not a regular file (%ld)", file, flags);
@@ -479,12 +480,12 @@ TMD5 *TMD5::FileChecksum(const char *file)
 
    TMD5 *md5 = new TMD5;
 
-   Seek_t pos = 0;
+   Long64_t pos = 0;
    const Int_t bufSize = 8192;
    UChar_t buf[bufSize];
 
    while (pos < size) {
-      Seek_t left = Seek_t(size - pos);
+      Long64_t left = Long64_t(size - pos);
       if (left > bufSize)
          left = bufSize;
       Int_t siz;
diff --git a/base/src/TSystem.cxx b/base/src/TSystem.cxx
index b3add6d4d764a6e85b77a3af93497e4742e16a02..04770a30e36cecac7fc9ef2a44d2a698caea426f 100644
--- a/base/src/TSystem.cxx
+++ b/base/src/TSystem.cxx
@@ -1,4 +1,4 @@
-// @(#)root/base:$Name:  $:$Id: TSystem.cxx,v 1.75 2003/11/18 19:04:17 rdm Exp $
+// @(#)root/base:$Name:  $:$Id: TSystem.cxx,v 1.76 2003/12/01 07:15:26 rdm Exp $
 // Author: Fons Rademakers   15/09/95
 
 /*************************************************************************
@@ -918,7 +918,7 @@ int TSystem::Unlink(const char *)
 }
 
 //______________________________________________________________________________
-int TSystem::GetPathInfo(const char*, Long_t*, Long_t*, Long_t*, Long_t*)
+int TSystem::GetPathInfo(const char*, Long_t*, Long64_t*, Long_t*, Long_t*)
 {
    // Get info about a file: id, size, flags, modification time.
 
diff --git a/base/src/TSystemDirectory.cxx b/base/src/TSystemDirectory.cxx
index e514eeb380f2425791870195e44b64e72063f448..55b02daf1247632ac6a78b07559f9a73d9186a17 100644
--- a/base/src/TSystemDirectory.cxx
+++ b/base/src/TSystemDirectory.cxx
@@ -1,4 +1,4 @@
-// @(#)root/base:$Name:  $:$Id: TSystemDirectory.cxx,v 1.3 2002/07/31 21:59:16 rdm Exp $
+// @(#)root/base:$Name:  $:$Id: TSystemDirectory.cxx,v 1.4 2003/07/01 11:39:45 rdm Exp $
 // Author: Christian Bormann  13/10/97
 
 /*************************************************************************
@@ -106,7 +106,8 @@ Bool_t TSystemDirectory::IsDirectory(const char *name) const
 {
    // Check if name is a directory.
 
-   Long_t id, size, flags, modtime;
+   Long64_t size;
+   Long_t id, flags, modtime;
    const char *dirfile = GetTitle();
 
    gSystem->ChangeDirectory(dirfile);
diff --git a/base/src/TSystemFile.cxx b/base/src/TSystemFile.cxx
index 71589d3e488fa608060ce10f35027e828745ef39..506ab3a8ed3c6696ceb49a43b82a87e7e06e04bc 100644
--- a/base/src/TSystemFile.cxx
+++ b/base/src/TSystemFile.cxx
@@ -1,4 +1,4 @@
-// @(#)root/base:$Name:  $:$Id: TSystemFile.cxx,v 1.3 2001/11/28 15:58:13 rdm Exp $
+// @(#)root/base:$Name:  $:$Id: TSystemFile.cxx,v 1.4 2003/07/01 11:39:45 rdm Exp $
 // Author: Rene Brun   26/06/96
 
 /*************************************************************************
@@ -54,7 +54,8 @@ Bool_t TSystemFile::IsDirectory() const
 {
    // Check if object is a directory.
 
-   Long_t id, size, flags, modtime;
+   Long64_t size;
+   Long_t id, flags, modtime;
 
    flags = id = size = modtime = 0;
    gSystem->GetPathInfo(fName, &id, &size, &flags, &modtime);
diff --git a/build/version_number b/build/version_number
index b56bab041867a71675522b2c77dc6ccb1884c134..6dd73bbc7d074298701587f87ea55f41b7152ce8 100644
--- a/build/version_number
+++ b/build/version_number
@@ -1 +1 @@
-3.10/02
+4.00/00
diff --git a/chirp/inc/TChirpFile.h b/chirp/inc/TChirpFile.h
index bce63e4ac9149682e1a9121b762895ea204a1a15..80802c620a474510f2b9279e7407d92c2c8a8280 100644
--- a/chirp/inc/TChirpFile.h
+++ b/chirp/inc/TChirpFile.h
@@ -30,19 +30,19 @@
 class TChirpFile : public TFile {
 
 private:
-   Seek_t fOffset;
-   struct chirp_client *chirp_client;
+   Long64_t fOffset;
+   struct   chirp_client *chirp_client;
 
    TChirpFile() : fOffset(0), chirp_client(0) { }
 
    // Interface to basic system I/O routines
-   Int_t  SysOpen(const char *pathname, Int_t flags, UInt_t mode);
-   Int_t  SysClose(Int_t fd);
-   Int_t  SysRead(Int_t fd, void *buf, Int_t len);
-   Int_t  SysWrite(Int_t fd, const void *buf, Int_t len);
-   Seek_t SysSeek(Int_t fd, Seek_t offset, Int_t whence);
-   Int_t  SysStat(Int_t fd, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime);
-   Int_t  SysSync(Int_t fd);
+   Int_t    SysOpen(const char *pathname, Int_t flags, UInt_t mode);
+   Int_t    SysClose(Int_t fd);
+   Int_t    SysRead(Int_t fd, void *buf, Int_t len);
+   Int_t    SysWrite(Int_t fd, const void *buf, Int_t len);
+   Long64_t SysSeek(Int_t fd, Long64_t offset, Int_t whence);
+   Int_t    SysStat(Int_t fd, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime);
+   Int_t    SysSync(Int_t fd);
 
    Int_t OpenChirpClient(const char *URL,char const **path);
    Int_t CloseChirpClient();
diff --git a/chirp/src/TChirpFile.cxx b/chirp/src/TChirpFile.cxx
index b995477d6a78d5f1eca9748c69343c816712ffeb..ef4059ece0fe72bee6b7fb68315070dc0ebfb7f5 100644
--- a/chirp/src/TChirpFile.cxx
+++ b/chirp/src/TChirpFile.cxx
@@ -127,7 +127,7 @@ Bool_t TChirpFile::ReadBuffer(char *buf, Int_t len)
 
    if (fCache) {
       Int_t st;
-      Seek_t off = fOffset;
+      Long64_t off = fOffset;
       if ((st = fCache->ReadBuffer(fOffset, buf, len)) < 0) {
          Error("ReadBuffer", "error reading from cache");
          return kTRUE;
@@ -152,7 +152,7 @@ Bool_t TChirpFile::WriteBuffer(const char *buf, Int_t len)
 
    if (fCache) {
       Int_t st;
-      Seek_t off = fOffset;
+      Long64_t off = fOffset;
       if ((st = fCache->WriteBuffer(fOffset, buf, len)) < 0) {
          Error("WriteBuffer", "error writing to cache");
          return kTRUE;
@@ -265,11 +265,11 @@ Int_t TChirpFile::SysWrite(Int_t fd, const void *buf, Int_t len)
 }
 
 //______________________________________________________________________________
-Seek_t TChirpFile::SysSeek(Int_t fd, Seek_t offset, Int_t whence)
+Long64_t TChirpFile::SysSeek(Int_t fd, Long64_t offset, Int_t whence)
 {
    if (whence == SEEK_SET && offset == fOffset) return offset;
 
-   Seek_t rc = chirp_client_lseek(chirp_client, fd, offset, whence);
+   Long64_t rc = chirp_client_lseek(chirp_client, fd, offset, whence);
 
    if (rc < 0) {
       gSystem->SetErrorStr(strerror(errno));
@@ -293,14 +293,14 @@ Int_t TChirpFile::SysSync(Int_t fd)
 }
 
 //______________________________________________________________________________
-Int_t TChirpFile::SysStat(Int_t fd, Long_t *id, Long_t *size,
+Int_t TChirpFile::SysStat(Int_t fd, Long_t *id, Long64_t *size,
                            Long_t *flags, Long_t *modtime)
 {
    // FIXME: chirp library doesn't (yet) provide any stat() capabilities.
 
    *id = ::Hash(fRealName);
 
-   Seek_t offset = fOffset;
+   Long64_t offset = fOffset;
    *size = SysSeek(fd, 0, SEEK_END);
    SysSeek(fd, offset, SEEK_SET);
 
diff --git a/dcache/inc/TDCacheFile.h b/dcache/inc/TDCacheFile.h
index 98cec18c19fd059602192d9a2d698db574fa0733..7f15bd9f0b7796d8ce3d6da437908dd58786b20e 100644
--- a/dcache/inc/TDCacheFile.h
+++ b/dcache/inc/TDCacheFile.h
@@ -1,4 +1,4 @@
-// @(#)root/dcache:$Name:  $:$Id: TDCacheFile.h,v 1.2 2002/03/25 16:43:16 rdm Exp $
+// @(#)root/dcache:$Name:  $:$Id: TDCacheFile.h,v 1.3 2003/12/02 02:07:44 brun Exp $
 // Author: Grzegorz Mazur   20/01/2002
 // Updated: William Tanenbaum 21/11/2003
 
@@ -37,18 +37,18 @@
 class TDCacheFile : public TFile {
 
 private:
-   Seek_t fOffset;
+   Long64_t fOffset;
 
    TDCacheFile() : fOffset(0) { }
 
    // Interface to basic system I/O routines
-   Int_t  SysOpen(const char *pathname, Int_t flags, UInt_t mode);
-   Int_t  SysClose(Int_t fd);
-   Int_t  SysRead(Int_t fd, void *buf, Int_t len);
-   Int_t  SysWrite(Int_t fd, const void *buf, Int_t len);
-   Seek_t SysSeek(Int_t fd, Seek_t offset, Int_t whence);
-   Int_t  SysStat(Int_t fd, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime);
-   Int_t  SysSync(Int_t fd);
+   Int_t    SysOpen(const char *pathname, Int_t flags, UInt_t mode);
+   Int_t    SysClose(Int_t fd);
+   Int_t    SysRead(Int_t fd, void *buf, Int_t len);
+   Int_t    SysWrite(Int_t fd, const void *buf, Int_t len);
+   Long64_t SysSeek(Int_t fd, Long64_t offset, Int_t whence);
+   Int_t    SysStat(Int_t fd, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime);
+   Int_t    SysSync(Int_t fd);
 
 public:
    TDCacheFile(const char *path, Option_t *option="",
@@ -99,7 +99,7 @@ public:
    void       *OpenDirectory(const char *name);
    void        FreeDirectory(void *dirp);
    const char *GetDirEntry(void *dirp);
-   Int_t       GetPathInfo(const char *path, Long_t *id, Long_t *size,
+   Int_t       GetPathInfo(const char *path, Long_t *id, Long64_t *size,
                            Long_t *flags, Long_t *modtime);
    Bool_t      AccessPathName(const char *path, EAccessMode mode);
 
diff --git a/dcache/src/TDCacheFile.cxx b/dcache/src/TDCacheFile.cxx
index be6393f38f0eb0b770a077c7a3d2507208b3a54e..2669ab595f472218e0a900496da1d92db25b40cb 100644
--- a/dcache/src/TDCacheFile.cxx
+++ b/dcache/src/TDCacheFile.cxx
@@ -1,4 +1,4 @@
-// @(#)root/dcache:$Name:  $:$Id: TDCacheFile.cxx,v 1.13 2003/12/02 07:49:11 rdm Exp $
+// @(#)root/dcache:$Name:  $:$Id: TDCacheFile.cxx,v 1.14 2003/12/25 18:11:57 brun Exp $
 // Author: Grzegorz Mazur   20/01/2002
 // Modified: William Tanenbaum 01/12/2003
 
@@ -197,7 +197,7 @@ Bool_t TDCacheFile::ReadBuffer(char *buf, Int_t len)
 
    if (fCache) {
       Int_t st;
-      Seek_t off = fOffset;
+      Long64_t off = fOffset;
       if ((st = fCache->ReadBuffer(fOffset, buf, len)) < 0) {
          Error("ReadBuffer", "error reading from cache");
          return kTRUE;
@@ -222,7 +222,7 @@ Bool_t TDCacheFile::WriteBuffer(const char *buf, Int_t len)
 
    if (fCache) {
       Int_t st;
-      Seek_t off = fOffset;
+      Long64_t off = fOffset;
       if ((st = fCache->WriteBuffer(fOffset, buf, len)) < 0) {
          Error("WriteBuffer", "error writing to cache");
          return kTRUE;
@@ -407,7 +407,7 @@ Int_t TDCacheFile::SysWrite(Int_t fd, const void *buf, Int_t len)
 }
 
 //______________________________________________________________________________
-Seek_t TDCacheFile::SysSeek(Int_t fd, Seek_t offset, Int_t whence)
+Long64_t TDCacheFile::SysSeek(Int_t fd, Long64_t offset, Int_t whence)
 {
    // Interface to system seek. All arguments like in POSIX lseek.
 
@@ -415,7 +415,7 @@ Seek_t TDCacheFile::SysSeek(Int_t fd, Seek_t offset, Int_t whence)
 
    dc_errno = 0;
 
-   Seek_t rc = dc_lseek(fd, offset, whence);
+   Long64_t rc = dc_lseek(fd, offset, whence);
 
    if (rc < 0) {
       if (dc_errno != 0)
@@ -439,7 +439,7 @@ Int_t TDCacheFile::SysSync(Int_t)
 }
 
 //______________________________________________________________________________
-Int_t TDCacheFile::SysStat(Int_t, Long_t *id, Long_t *size,
+Int_t TDCacheFile::SysStat(Int_t, Long_t *id, Long64_t *size,
                            Long_t *flags, Long_t *modtime)
 {
    // Return file stat information. The interface and return value is
@@ -560,7 +560,7 @@ Bool_t TDCacheSystem::AccessPathName(const char *path, EAccessMode mode)
 }
 
 //______________________________________________________________________________
-int TDCacheSystem::GetPathInfo(const char *path, Long_t *id, Long_t *size,
+int TDCacheSystem::GetPathInfo(const char *path, Long_t *id, Long64_t *size,
                                Long_t *flags, Long_t *modtime)
 {
    // Get info about a file: id, size, flags, modification time.
diff --git a/hbook/inc/THbookFile.h b/hbook/inc/THbookFile.h
index 08c90c9752a5093facb99ba439032871b96d283b..d19357cc769e40eed2f9f963b71c08bf41bbdf2d 100644
--- a/hbook/inc/THbookFile.h
+++ b/hbook/inc/THbookFile.h
@@ -1,4 +1,4 @@
-// @(#)root/hbook:$Name:  $:$Id: THbookFile.h,v 1.5 2002/04/30 07:26:47 brun Exp $
+// @(#)root/hbook:$Name:  $:$Id: THbookFile.h,v 1.6 2002/10/22 12:10:01 brun Exp $
 // Author: Rene Brun   18/02/2002
 
 /*************************************************************************
@@ -61,7 +61,7 @@ public:
    const char       *GetCurDir() const {return fCurDir.Data();}
    Int_t             GetEntry(Int_t entry,Int_t id, Int_t atype, Float_t *x);
    Int_t             GetEntryBranch(Int_t entry,Int_t id);
-   Seek_t            GetSize() const {return 0;}
+   Long64_t          GetSize() const {return 0;}
    TList            *GetList() const {return fList;}
    TList            *GetListOfKeys() const { return fKeys; }
    void              InitLeaves(Int_t id, Int_t var, TTreeFormula *formula);
diff --git a/html/src/THtml.cxx b/html/src/THtml.cxx
index ad19c9dea103bb4afafea411df9d9e02b241ffec..94c8aad93c5a418b0aef320b54a5eada25ce26ca 100644
--- a/html/src/THtml.cxx
+++ b/html/src/THtml.cxx
@@ -1,4 +1,4 @@
-// @(#)root/html:$Name:  $:$Id: THtml.cxx,v 1.46 2003/11/11 18:07:19 brun Exp $
+// @(#)root/html:$Name:  $:$Id: THtml.cxx,v 1.47 2003/11/20 15:03:44 brun Exp $
 // Author: Nenad Buncic (18/10/95), Axel Naumann <mailto:axel@fnal.gov> (09/28/01)
 
 /*************************************************************************
@@ -318,7 +318,8 @@ fMapDocElements(0)
                       "http://consult.cern.ch/xwho/people?");
 
    Int_t st;
-   Long_t sId, sSize, sFlags, sModtime;
+   Long64_t sSize;
+   Long_t sId, sFlags, sModtime;
    if ((st =
         gSystem->GetPathInfo(fOutputDir, &sId, &sSize, &sFlags, &sModtime))
        || !(sFlags & 2)) {
@@ -1755,8 +1756,9 @@ Bool_t THtml::CopyHtmlFile(const char *sourceName, const char *destName)
       tmp1 = 0;
 
       // Get info about a file
-      Long_t sId, sSize, sFlags, sModtime;
-      Long_t dId, dSize, dFlags, dModtime;
+      Long64_t sSize, dSize;
+      Long_t sId, sFlags, sModtime;
+      Long_t dId, dFlags, dModtime;
       if (!
           (check =
            gSystem->GetPathInfo(sourceFile, &sId, &sSize, &sFlags,
@@ -2937,8 +2939,9 @@ Bool_t THtml::IsModified(TClass * classPtr, const Int_t type)
    }
 
    // Get info about a file
-   Long_t sId, sSize, sFlags, sModtime;
-   Long_t dId, dSize, dFlags, dModtime;
+   Long64_t sSize, dSize;
+   Long_t sId, sFlags, sModtime;
+   Long_t dId, dFlags, dModtime;
 
    if (!
        (gSystem->
diff --git a/io/inc/TFile.h b/io/inc/TFile.h
index df222b969052417c840e47b539f6e893acf9f5f1..e3ee0485e10081daa687c0f793f3024ab679db57 100644
--- a/io/inc/TFile.h
+++ b/io/inc/TFile.h
@@ -1,4 +1,4 @@
-// @(#)root/base:$Name:  $:$Id: TFile.h,v 1.28 2003/02/26 10:11:50 brun Exp $
+// @(#)root/base:$Name:  $:$Id: TFile.h,v 1.29 2003/04/28 10:18:38 rdm Exp $
 // Author: Rene Brun   28/11/94
 
 /*************************************************************************
@@ -39,10 +39,10 @@ protected:
    Double_t    fSum2Buffer;       //Sum of squares of buffer sizes of objects written so far
    Double_t    fBytesWrite;       //Number of bytes written to this file
    Double_t    fBytesRead;        //Number of bytes read from this file
-   Seek_t      fBEGIN;            //First used byte in file
-   Seek_t      fEND;              //Last used byte in file
-   Seek_t      fSeekFree;         //Location on disk of free segments structure
-   Seek_t      fSeekInfo;         //Location on disk of StreamerInfo record
+   Long64_t    fBEGIN;            //First used byte in file
+   Long64_t    fEND;              //Last used byte in file
+   Long64_t    fSeekFree;         //Location on disk of free segments structure
+   Long64_t    fSeekInfo;         //Location on disk of StreamerInfo record
    Int_t       fD;                //File descriptor
    Int_t       fVersion;          //File format version
    Int_t       fCompress;         //Compression level from 0(not compressed) to 9 (max compression)
@@ -64,13 +64,13 @@ protected:
    void Init(Bool_t create);
 
    // Interface to basic system I/O routines
-   virtual Int_t  SysOpen(const char *pathname, Int_t flags, UInt_t mode);
-   virtual Int_t  SysClose(Int_t fd);
-   virtual Int_t  SysRead(Int_t fd, void *buf, Int_t len);
-   virtual Int_t  SysWrite(Int_t fd, const void *buf, Int_t len);
-   virtual Seek_t SysSeek(Int_t fd, Seek_t offset, Int_t whence);
-   virtual Int_t  SysStat(Int_t fd, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime);
-   virtual Int_t  SysSync(Int_t fd);
+   virtual Int_t    SysOpen(const char *pathname, Int_t flags, UInt_t mode);
+   virtual Int_t    SysClose(Int_t fd);
+   virtual Int_t    SysRead(Int_t fd, void *buf, Int_t len);
+   virtual Int_t    SysWrite(Int_t fd, const void *buf, Int_t len);
+   virtual Long64_t SysSeek(Int_t fd, Long64_t offset, Int_t whence);
+   virtual Int_t    SysStat(Int_t fd, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime);
+   virtual Int_t    SysSync(Int_t fd);
 
 private:
    TFile(const TFile &);            //Files cannot be copied
@@ -101,7 +101,7 @@ public:
    TArrayC          *GetClassIndex() const { return fClassIndex; }
    Int_t             GetCompressionLevel() const { return fCompress; }
    Float_t           GetCompressionFactor();
-   virtual Seek_t    GetEND() const { return fEND; }
+   virtual Long64_t  GetEND() const { return fEND; }
    virtual Int_t     GetErrno() const;
    virtual void      ResetErrno() const;
    Int_t             GetFd() const { return fD; }
@@ -113,17 +113,17 @@ public:
    Double_t          GetBytesRead() const { return fBytesRead; }
    Double_t          GetBytesWritten() const { return fBytesWrite; }
    Int_t             GetVersion() const { return fVersion; }
-   Int_t             GetRecordHeader(char *buf, Seek_t first, Int_t maxbytes, Int_t &nbytes, Int_t &objlen, Int_t &keylen);
+   Int_t             GetRecordHeader(char *buf, Long64_t first, Int_t maxbytes, Int_t &nbytes, Int_t &objlen, Int_t &keylen);
    virtual Int_t     GetNbytesInfo() const {return fNbytesInfo;}
    virtual Int_t     GetNbytesFree() const {return fNbytesFree;}
-   virtual Seek_t    GetSeekFree() const {return fSeekFree;}
-   virtual Seek_t    GetSeekInfo() const {return fSeekInfo;}
-   virtual Seek_t    GetSize() const;
+   virtual Long64_t  GetSeekFree() const {return fSeekFree;}
+   virtual Long64_t  GetSeekInfo() const {return fSeekInfo;}
+   virtual Long64_t  GetSize() const;
    TList            *GetStreamerInfoList();
    virtual void      IncrementProcessIDs() {fNProcessIDs++;}
    virtual Bool_t    IsOpen() const;
    virtual void      ls(Option_t *option="") const;
-   virtual void      MakeFree(Seek_t first, Seek_t last);
+   virtual void      MakeFree(Long64_t first, Long64_t last);
    virtual void      MakeProject(const char *dirname, const char *classes="*", Option_t *option="new"); // *MENU*
    virtual void      Map(); // *MENU*
    virtual void      Paint(Option_t *option="");
@@ -133,9 +133,9 @@ public:
    virtual void      ReadStreamerInfo();
    virtual Int_t     Recover();
    virtual Int_t     ReOpen(Option_t *mode);
-   virtual void      Seek(Seek_t offset, ERelativeTo pos = kBeg);
+   virtual void      Seek(Long64_t offset, ERelativeTo pos = kBeg);
    virtual void      SetCompressionLevel(Int_t level=1);
-   virtual void      SetEND(Seek_t last) { fEND = last; }
+   virtual void      SetEND(Long64_t last) { fEND = last; }
    virtual void      SetOption(Option_t *option=">") { fOption = option; }
    virtual void      ShowStreamerInfo();
    virtual Int_t     Sizeof() const;
@@ -157,7 +157,7 @@ public:
    static void       SetFileBytesRead(Double_t bytes=0);
    static void       SetFileBytesWritten(Double_t bytes=0);
 
-   ClassDef(TFile,4)  //ROOT file
+   ClassDef(TFile,5)  //ROOT file
 };
 
 R__EXTERN TFile   *gFile;
diff --git a/io/inc/TFree.h b/io/inc/TFree.h
index 57b57685b3a635bb0f3b3aab0af811c1a186dc78..99a8349f5fc6d7004908600501393fa3664da05c 100644
--- a/io/inc/TFree.h
+++ b/io/inc/TFree.h
@@ -1,4 +1,4 @@
-// @(#)root/base:$Name:  $:$Id: TFree.h,v 1.3 2000/12/13 15:13:45 brun Exp $
+// @(#)root/base:$Name:  $:$Id: TFree.h,v 1.4 2003/02/26 10:11:50 brun Exp $
 // Author: Rene Brun   28/12/94
 
 /*************************************************************************
@@ -29,21 +29,21 @@
 class TFree : public TObject {
 
 protected:
-        Seek_t        fFirst;            //First free word of segment
-        Seek_t        fLast;             //Last free word of segment
+        Long64_t        fFirst;            //First free word of segment
+        Long64_t        fLast;             //Last free word of segment
 
 public:
         TFree();
-        TFree(TList *lfree, Seek_t first, Seek_t last);
+        TFree(TList *lfree, Long64_t first, Long64_t last);
         virtual ~TFree();
-               TFree     *AddFree(TList *lfree, Seek_t first, Seek_t last);
+               TFree     *AddFree(TList *lfree, Long64_t first, Long64_t last);
         virtual void     FillBuffer(char *&buffer);
-               TFree     *GetBestFree(TList *lfree, Int_t nbytes);
-              Seek_t     GetFirst() const {return fFirst;}
-              Seek_t     GetLast() const {return fLast;}
+               TFree    *GetBestFree(TList *lfree, Int_t nbytes);
+              Long64_t   GetFirst() const {return fFirst;}
+              Long64_t   GetLast() const {return fLast;}
         virtual void     ReadBuffer(char *&buffer);
-                void     SetFirst(Seek_t first) {fFirst=first;}
-                void     SetLast(Seek_t last) {fLast=last;}
+                void     SetFirst(Long64_t first) {fFirst=first;}
+                void     SetLast(Long64_t last) {fLast=last;}
                Int_t     Sizeof() const;
 
         ClassDef(TFree,1)  //Description of free segments on a file
diff --git a/io/inc/TKey.h b/io/inc/TKey.h
index 823c7ba88ab8650f0f2e91b41c678c0382ad8e46..4b0e0e1ff5e6eae690a1e9bd6b9e20a52ebe1afd 100644
--- a/io/inc/TKey.h
+++ b/io/inc/TKey.h
@@ -1,4 +1,4 @@
-// @(#)root/base:$Name:  $:$Id: TKey.h,v 1.6 2002/02/02 11:54:34 brun Exp $
+// @(#)root/base:$Name:  $:$Id: TKey.h,v 1.7 2002/04/04 08:58:49 brun Exp $
 // Author: Rene Brun   28/12/94
 
 /*************************************************************************
@@ -43,12 +43,12 @@ protected:
     TDatime     fDatime;         //Date/Time of insertion in file
     Short_t     fKeylen;         //Number of bytes for the key itself
     Short_t     fCycle;          //Cycle number
-    Seek_t      fSeekKey;        //Location of object on file
-    Seek_t      fSeekPdir;       //Location of parent directory on file
+    Long64_t    fSeekKey;        //Location of object on file
+    Long64_t    fSeekPdir;       //Location of parent directory on file
     TString     fClassName;      //Object Class name
     Int_t       fLeft;           //Number of bytes left in current segment
-    char        *fBuffer;        //Object buffer
-    TBuffer     *fBufferRef;     //Pointer to the TBuffer object
+    char       *fBuffer;         //Object buffer
+    TBuffer    *fBufferRef;      //Pointer to the TBuffer object
 
     virtual void     Create(Int_t nbytes);
     virtual Int_t    Read(const char *name) { return TObject::Read(name); }
@@ -58,7 +58,7 @@ public:
     TKey(const char *name, const char *title, TClass *cl, Int_t nbytes);
     TKey(const TString &name, const TString &title, TClass *cl, Int_t nbytes);
     TKey(TObject *obj, const char *name, Int_t bufsize);
-    TKey(Seek_t pointer, Int_t nbytes);
+    TKey(Long64_t pointer, Int_t nbytes);
     virtual ~TKey();
     virtual void      Browse(TBrowser *b);
     virtual void      Delete(Option_t *option="");
@@ -69,12 +69,12 @@ public:
          TBuffer     *GetBufferRef() const {return fBufferRef;}
          Short_t      GetCycle() const ;
          Short_t      GetKeep() const;
-           Int_t      GetKeylen() const  {return fKeylen;}
-           Int_t      GetNbytes() const  {return fNbytes;}
-           Int_t      GetObjlen() const  {return fObjlen;}
-           Int_t      GetVersion() const {return fVersion;}
-    virtual Seek_t    GetSeekKey() const  {return fSeekKey;}
-    virtual Seek_t    GetSeekPdir() const {return fSeekPdir;}
+           Int_t      GetKeylen() const   {return fKeylen;}
+           Int_t      GetNbytes() const   {return fNbytes;}
+           Int_t      GetObjlen() const   {return fObjlen;}
+           Int_t      GetVersion() const  {return fVersion;}
+    virtual Long64_t  GetSeekKey() const  {return fSeekKey;}
+    virtual Long64_t  GetSeekPdir() const {return fSeekPdir;}
     virtual ULong_t   Hash() const;
     Bool_t            IsFolder() const;
     virtual void      Keep();
@@ -89,7 +89,7 @@ public:
     virtual Int_t     Sizeof() const;
     virtual Int_t     WriteFile(Int_t cycle=1);
 
-    ClassDef(TKey,2)  //Header description of a logical record on file
+    ClassDef(TKey,3)  //Header description of a logical record on file
 };
 
 #endif
diff --git a/io/src/TFile.cxx b/io/src/TFile.cxx
index fa1da2b5096beabd2ac4abf8b23716e5f76dee4b..51954183e1f2070c23210f98b08721a530f39d92 100644
--- a/io/src/TFile.cxx
+++ b/io/src/TFile.cxx
@@ -1,4 +1,4 @@
-// @(#)root/base:$Name:  $:$Id: TFile.cxx,v 1.102 2003/09/27 18:45:45 rdm Exp $
+// @(#)root/base:$Name:  $:$Id: TFile.cxx,v 1.103 2003/11/07 03:29:41 rdm Exp $
 // Author: Rene Brun   28/11/94
 
 /*************************************************************************
@@ -8,7 +8,6 @@
  * For the licensing terms see $ROOTSYS/LICENSE.                         *
  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
  *************************************************************************/
-
 #include <fcntl.h>
 #include <errno.h>
 #include <sys/stat.h>
@@ -349,10 +348,8 @@ void TFile::Init(Bool_t create)
 {
    // Initialize a TFile object.
 
-   Seek_t max_file_size = kStartBigFile;
-   if (sizeof(Seek_t) > 4) max_file_size *= 500;
    Int_t nfree;
-   fBEGIN  = (Seek_t)kBEGIN;    //First used word in file following the file header
+   fBEGIN  = (Long64_t)kBEGIN;    //First used word in file following the file header
 
    // make newly opened file the current file and directory
    cd();
@@ -361,7 +358,7 @@ void TFile::Init(Bool_t create)
    if (create) {
       fFree        = new TList;
       fEND         = fBEGIN;    //Pointer to end of file
-      new TFree(fFree, fBEGIN, max_file_size);  //Create new free list
+      new TFree(fFree, fBEGIN, Long64_t(kStartBigFile));  //Create new free list
 
 //*-* Write Directory info
       Int_t namelen= TNamed::Sizeof();
@@ -395,28 +392,27 @@ void TFile::Init(Bool_t create)
       frombuf(buffer, &fVersion);
       Int_t headerLength;
       frombuf(buffer, &headerLength);
-      fBEGIN = (Seek_t)headerLength;
+      fBEGIN = (Long64_t)headerLength;
       if (fVersion < 1000000) { //small file
          Int_t send,sfree,sinfo;
-         frombuf(buffer, &send);         fEND     = (Seek_t)send;
-         frombuf(buffer, &sfree);        fSeekFree= (Seek_t)sfree;
+         frombuf(buffer, &send);         fEND     = (Long64_t)send;
+         frombuf(buffer, &sfree);        fSeekFree= (Long64_t)sfree;
          frombuf(buffer, &fNbytesFree);
          frombuf(buffer, &nfree);
          frombuf(buffer, &fNbytesName);
          frombuf(buffer, &fUnits );
          frombuf(buffer, &fCompress);
-         frombuf(buffer, &sinfo);        fSeekInfo = (Seek_t)sinfo;
+         frombuf(buffer, &sinfo);        fSeekInfo = (Long64_t)sinfo;
          frombuf(buffer, &fNbytesInfo);
       } else { // new format to support large files
-         Long_t send,sfree,sinfo;
-         frombuf(buffer, &send);         fEND     = (Seek_t)send;
-         frombuf(buffer, &sfree);        fSeekFree= (Seek_t)sfree;
+         frombuf(buffer, &fEND);
+         frombuf(buffer, &fSeekFree);
          frombuf(buffer, &fNbytesFree);
          frombuf(buffer, &nfree);
          frombuf(buffer, &fNbytesName);
          frombuf(buffer, &fUnits );
          frombuf(buffer, &fCompress);
-         frombuf(buffer, &sinfo);        fSeekInfo = (Seek_t)sinfo;
+         frombuf(buffer, &fSeekInfo);
          frombuf(buffer, &fNbytesInfo);
       }
       fSeekDir = fBEGIN;
@@ -444,18 +440,17 @@ void TFile::Init(Bool_t create)
       frombuf(buffer, &fNbytesKeys);
       frombuf(buffer, &fNbytesName);
       Int_t nk = sizeof(Int_t) +sizeof(Version_t) +2*sizeof(Int_t)+2*sizeof(Short_t)
-                +2*sizeof(Seek_t);
+                +2*sizeof(Int_t);
       if (version > 1000) {
          nk += 12;
-         Long_t sdir,sparent,skeys;
-         frombuf(buffer, &sdir);    fSeekDir    = (Seek_t)sdir;
-         frombuf(buffer, &sparent); fSeekParent = (Seek_t)sparent;
-         frombuf(buffer, &skeys);   fSeekKeys   = (Seek_t)skeys;
+         frombuf(buffer, &fSeekDir);
+         frombuf(buffer, &fSeekParent);
+         frombuf(buffer, &fSeekKeys);
       } else {
          Int_t sdir,sparent,skeys;
-         frombuf(buffer, &sdir);    fSeekDir    = (Seek_t)sdir;
-         frombuf(buffer, &sparent); fSeekParent = (Seek_t)sparent;
-         frombuf(buffer, &skeys);   fSeekKeys   = (Seek_t)skeys;
+         frombuf(buffer, &sdir);    fSeekDir    = (Long64_t)sdir;
+         frombuf(buffer, &sparent); fSeekParent = (Long64_t)sparent;
+         frombuf(buffer, &skeys);   fSeekKeys   = (Long64_t)skeys;
       }
       if (versiondir > 1) fUUID.ReadBuffer(buffer);
 
@@ -471,7 +466,7 @@ void TFile::Init(Bool_t create)
          goto zombie;
       }
 //*-* -------------Check if file is truncated
-      Long_t size;
+      Long64_t size;
       if ((size = GetSize()) == -1) {
          Error("Init", "cannot stat the file %s", GetName());
          goto zombie;
@@ -723,7 +718,7 @@ Float_t TFile::GetCompressionFactor()
    Int_t    nbytes, objlen, nwh = 64;
    char    *header = new char[fBEGIN];
    char    *buffer;
-   Seek_t   idcur = fBEGIN;
+   Long64_t   idcur = fBEGIN;
    Float_t comp,uncomp;
    comp = uncomp = fBEGIN;
 
@@ -769,7 +764,7 @@ void TFile::ResetErrno() const
 }
 
 //______________________________________________________________________________
-Int_t TFile::GetRecordHeader(char *buf, Seek_t first, Int_t maxbytes, Int_t &nbytes, Int_t &objlen, Int_t &keylen)
+Int_t TFile::GetRecordHeader(char *buf, Long64_t first, Int_t maxbytes, Int_t &nbytes, Int_t &objlen, Int_t &keylen)
 {
 //*-*-*-*-*-*-*-*-*Read the logical record header starting at position first
 //*-*              =========================================================
@@ -818,12 +813,13 @@ Int_t TFile::GetRecordHeader(char *buf, Seek_t first, Int_t maxbytes, Int_t &nby
 }
 
 //______________________________________________________________________________
-Seek_t TFile::GetSize() const
+Long64_t TFile::GetSize() const
 {
    // Returns the current file size. Returns -1 in case the file could not
    // be stat'ed.
 
-   Long_t id, size, flags, modtime;
+   Long64_t size;
+   Long_t id, flags, modtime;
 
    if (const_cast<TFile*>(this)->SysStat(fD, &id, &size, &flags, &modtime)) {
       Error("GetSize", "cannot stat the file %s", GetName());
@@ -902,7 +898,7 @@ Bool_t TFile::IsOpen() const
 }
 
 //______________________________________________________________________________
-void TFile::MakeFree(Seek_t first, Seek_t last)
+void TFile::MakeFree(Long64_t first, Long64_t last)
 {
 //*-*-*-*-*-*-*-*-*-*-*-*Mark unused bytes on the file*-*-*-*-*-*-*-*-*-*-*
 //*-*                    =============================
@@ -918,12 +914,14 @@ void TFile::MakeFree(Seek_t first, Seek_t last)
    if (!f1) return;
    TFree *newfree = f1->AddFree(fFree,first,last);
    if(!newfree) return;
-   Seek_t nfirst  = newfree->GetFirst();
-   Seek_t nlast   = newfree->GetLast();
-   Int_t nbytes   = Int_t (nfirst - nlast -1);
-   Int_t nb       = sizeof(Int_t);
-   char * buffer  = new char[nb];
-   char * psave   = buffer;
+   Long64_t nfirst = newfree->GetFirst();
+   Long64_t nlast  = newfree->GetLast();
+   Long64_t nbytesl= nlast-nfirst+1;
+   if (nbytesl > 2000000000) nbytesl = 2000000000;
+   Int_t nbytes    = -Int_t (nbytesl);
+   Int_t nb        = sizeof(Int_t);
+   char * buffer   = new char[nb];
+   char * psave    = buffer;
    tobuf(buffer, nbytes);
    if (nlast == fEND-1) fEND = nfirst;
    Seek(nfirst);
@@ -971,10 +969,10 @@ void TFile::Map()
    Short_t  keylen,cycle;
    UInt_t   datime;
    Int_t    nbytes,date,time,objlen,nwheader;
-   Seek_t   seekkey,seekpdir;
+   Long64_t seekkey,seekpdir;
    char    *buffer;
    char     nwhc;
-   Seek_t   idcur = fBEGIN;
+   Long64_t idcur = fBEGIN;
 
    nwheader = 64;
    Int_t nread = nwheader;
@@ -989,11 +987,11 @@ void TFile::Map()
       buffer=header;
       frombuf(buffer, &nbytes);
       if (!nbytes) {
-         Printf("Address = %d\tNbytes = %d\t=====E R R O R=======", idcur, nbytes);
+         Printf("Address = %lld\tNbytes = %d\t=====E R R O R=======", idcur, nbytes);
          break;
       }
       if (nbytes < 0) {
-         Printf("Address = %d\tNbytes = %d\t=====G A P===========", idcur, nbytes);
+         Printf("Address = %lld\tNbytes = %d\t=====G A P===========", idcur, nbytes);
          idcur -= nbytes;
          Seek(idcur);
          continue;
@@ -1005,13 +1003,12 @@ void TFile::Map()
       frombuf(buffer, &keylen);
       frombuf(buffer, &cycle);
       if (versionkey > 1000) {
-         Long_t skey,sdir;
-         frombuf(buffer, &skey);  seekkey  = (Seek_t)skey;
-         frombuf(buffer, &sdir);  seekpdir = (Seek_t)sdir;
+         frombuf(buffer, &seekkey);
+         frombuf(buffer, &seekpdir);
       } else {
          Int_t skey,sdir;
-         frombuf(buffer, &skey);  seekkey  = (Seek_t)skey;
-         frombuf(buffer, &sdir);  seekpdir = (Seek_t)sdir;
+         frombuf(buffer, &skey);  seekkey  = (Long64_t)skey;
+         frombuf(buffer, &sdir);  seekpdir = (Long64_t)sdir;
       }
       frombuf(buffer, &nwhc);
       int i;
@@ -1023,13 +1020,16 @@ void TFile::Map()
       TDatime::GetDateTime(datime, date, time);
       if (objlen != nbytes-keylen) {
          Float_t cx = Float_t(objlen+keylen)/Float_t(nbytes);
-         Printf("%d/%06d  At:%-8d  N=%-8d  %-14s CX = %5.2f",date,time,idcur,nbytes,classname,cx);
+         //Printf("%d/%06d  At:%-8d  N=%-8d  %-14s CX = %5.2f",date,time,idcur,nbytes,classname,cx);
+         Printf("%d/%06d  At:%lld  N=%-8d  %-14s CX = %5.2f",date,time,idcur,nbytes,classname,cx);
       } else {
-         Printf("%d/%06d  At:%-8d  N=%-8d  %-14s",date,time,idcur,nbytes,classname);
+         //Printf("%d/%06d  At:%-8d  N=%-8d  %-14s",date,time,idcur,nbytes,classname);
+         Printf("%d/%06d  At:%lld  N=%-8d  %-14s",date,time,idcur,nbytes,classname);
       }
       idcur += nbytes;
    }
-   Printf("%d/%06d  At:%-8d  N=%-8d  %-14s",date,time,idcur,1,"END");
+   //Printf("%d/%06d  At:%-8d  N=%-8d  %-14s",date,time,idcur,1,"END");
+   Printf("%d/%06d  At:%lld  N=%-8d  %-14s",date,time,idcur,1,"END");
 }
 
 //______________________________________________________________________________
@@ -1117,19 +1117,19 @@ Int_t TFile::Recover()
    Short_t  keylen,cycle;
    UInt_t   datime;
    Int_t    nbytes,date,time,objlen,nwheader;
-   Seek_t   seekkey,seekpdir;
+   Long64_t seekkey,seekpdir;
    char     header[1024];
    char    *buffer, *bufread;
    char     nwhc;
-   Seek_t   idcur = fBEGIN;
+   Long64_t idcur = fBEGIN;
 
-   Long_t size;
+   Long64_t size;
    if ((size = GetSize()) == -1) {
       Error("Recover", "cannot stat the file %s", GetName());
       return 0;
    }
 
-   fEND = Seek_t(size);
+   fEND = Long64_t(size);
 
    if (fWritable && !fFree) fFree  = new TList;
 
@@ -1146,7 +1146,7 @@ Int_t TFile::Recover()
       bufread = header;
       frombuf(buffer, &nbytes);
       if (!nbytes) {
-         Printf("Address = %d\tNbytes = %d\t=====E R R O R=======", idcur, nbytes);
+         Printf("Address = %lld\tNbytes = %d\t=====E R R O R=======", idcur, nbytes);
          break;
       }
       if (nbytes < 0) {
@@ -1162,16 +1162,17 @@ Int_t TFile::Recover()
       frombuf(buffer, &keylen);
       frombuf(buffer, &cycle);
       if (versionkey > 1000) {
-         Long_t skey,sdir;
-         frombuf(buffer, &skey);  seekkey  = (Seek_t)skey;
-         frombuf(buffer, &sdir);  seekpdir = (Seek_t)sdir;
+         frombuf(buffer, &seekkey);
+         frombuf(buffer, &seekpdir);
       } else {
          Int_t skey,sdir;
-         frombuf(buffer, &skey);  seekkey  = (Seek_t)skey;
-         frombuf(buffer, &sdir);  seekpdir = (Seek_t)sdir;
+         frombuf(buffer, &skey);  seekkey  = (Long64_t)skey;
+         frombuf(buffer, &sdir);  seekpdir = (Long64_t)sdir;
       }
       frombuf(buffer, &nwhc);
-      char *classname = new char[nwhc+1];
+      char *classname = 0;
+      if (nwhc <= 0 || nwhc > 100) break;
+      classname = new char[nwhc+1];
       int i;
       for (i = 0;i < nwhc; i++) frombuf(buffer, &classname[i]);
       classname[nwhc] = '\0';
@@ -1186,15 +1187,15 @@ Int_t TFile::Recover()
             AppendKey(key);
             nrecov++;
             SetBit(kRecovered);
-            Info("Recover", "%s, recovered key %s:%s at address %d",GetName(),key->GetClassName(),key->GetName(),idcur);
+            Info("Recover", "%s, recovered key %s:%s at address %lld",GetName(),key->GetClassName(),key->GetName(),idcur);
          }
       }
       delete [] classname;
       idcur += nbytes;
    }
    if (fWritable) {
-      Seek_t max_file_size = kStartBigFile;
-      if (sizeof(Seek_t) > 4) max_file_size *= 500;
+      Long64_t max_file_size = Long64_t(kStartBigFile);
+      if (max_file_size < fEND) max_file_size = fEND+1000000000;
       new TFree(fFree,fEND,max_file_size);
       if (nrecov) Write();
    }
@@ -1300,7 +1301,7 @@ Int_t TFile::ReOpen(Option_t *mode)
 }
 
 //______________________________________________________________________________
-void TFile::Seek(Seek_t offset, ERelativeTo pos)
+void TFile::Seek(Long64_t offset, ERelativeTo pos)
 {
    // Seek to a specific position in the file. Pos it either kBeg, kCur or kEnd.
 
@@ -1316,8 +1317,8 @@ void TFile::Seek(Seek_t offset, ERelativeTo pos)
       whence = SEEK_END;
       break;
    }
-   if (SysSeek(fD, offset, whence) < 0)
-      SysError("Seek", "cannot seek to position %d in file %s", offset, GetName());
+   if (Long64_t retpos = SysSeek(fD, offset, whence) < 0)
+      SysError("Seek", "cannot seek to position %lld in file %s, retpos=%lld", offset, GetName(),retpos);
 }
 
 //______________________________________________________________________________
@@ -1552,14 +1553,14 @@ void TFile::WriteHeader()
       tobuf(buffer, (Int_t)fSeekInfo);
       tobuf(buffer, fNbytesInfo);
    } else {
-      tobuf(buffer, (Long_t)fEND);
-      tobuf(buffer, (Long_t)fSeekFree);
+      tobuf(buffer, fEND);
+      tobuf(buffer, fSeekFree);
       tobuf(buffer, fNbytesFree);
       tobuf(buffer, nfree);
       tobuf(buffer, fNbytesName);
       tobuf(buffer, fUnits);
       tobuf(buffer, fCompress);
-      tobuf(buffer, (Long_t)fSeekInfo);
+      tobuf(buffer, fSeekInfo);
       tobuf(buffer, fNbytesInfo);
    }
    fUUID.FillBuffer(buffer);
@@ -1991,7 +1992,7 @@ Int_t TFile::SysOpen(const char *pathname, Int_t flags, UInt_t mode)
    // although this is posix default it has to be set explicitly
    return ::open(pathname, flags | O_BINARY, mode);
 #else
-   return ::open(pathname, flags, mode);
+   return ::open(pathname, flags | O_LARGEFILE, mode);
 #endif
 }
 
@@ -2020,17 +2021,21 @@ Int_t TFile::SysWrite(Int_t fd, const void *buf, Int_t len)
 }
 
 //______________________________________________________________________________
-Seek_t TFile::SysSeek(Int_t fd, Seek_t offset, Int_t whence)
+Long64_t TFile::SysSeek(Int_t fd, Long64_t offset, Int_t whence)
 {
    // Interface to system lseek. All arguments like in POSIX lseek()
    // except that the offset and return value are of a type which will
    // be able to handle 64 bit file systems in the future.
 
+#if defined (R__LINUX)
+   return ::lseek64(fd, offset, whence);
+#else
    return ::lseek(fd, offset, whence);
+#endif
 }
 
 //______________________________________________________________________________
-Int_t TFile::SysStat(Int_t, Long_t *id, Long_t *size, Long_t *flags,
+Int_t TFile::SysStat(Int_t, Long_t *id, Long64_t *size, Long_t *flags,
                      Long_t *modtime)
 {
    // Return file stat information. The interface and return value is
diff --git a/io/src/TFree.cxx b/io/src/TFree.cxx
index dd5537b8c57550199be38c148ae0ab035ffa0ee3..3c3cff08aabd456d2266c310a048be5a4bbcd8cc 100644
--- a/io/src/TFree.cxx
+++ b/io/src/TFree.cxx
@@ -1,4 +1,4 @@
-// @(#)root/base:$Name:  $:$Id: TFree.cxx,v 1.3 2003/02/26 10:11:51 brun Exp $
+// @(#)root/base:$Name:  $:$Id: TFree.cxx,v 1.4 2003/02/26 14:59:28 brun Exp $
 // Author: Rene Brun   28/12/94
 
 /*************************************************************************
@@ -40,7 +40,7 @@ TFree::TFree()
 }
 
 //______________________________________________________________________________
-TFree::TFree(TList *lfree, Seek_t first, Seek_t last)
+TFree::TFree(TList *lfree, Long64_t first, Long64_t last)
 {
 //*-*-*-*-*-*-*-*-*-*-*Constructor for a FREE segment*-*-*-*-*-*-*-*-*-*-*-*-*
 //*-*                  ==============================
@@ -50,7 +50,7 @@ TFree::TFree(TList *lfree, Seek_t first, Seek_t last)
 }
 
 //______________________________________________________________________________
-TFree *TFree::AddFree(TList *lfree, Seek_t first, Seek_t last)
+TFree *TFree::AddFree(TList *lfree, Long64_t first, Long64_t last)
 {
 //*-*-*-*-*-*-*-*-*-*Add a new free segment to the list of free segments*-*-*
 //*-*                ===================================================
@@ -64,8 +64,8 @@ TFree *TFree::AddFree(TList *lfree, Seek_t first, Seek_t last)
 //
    TFree *idcur = this;
    while (idcur) {
-      Seek_t curfirst = idcur->GetFirst();
-      Seek_t curlast  = idcur->GetLast();
+      Long64_t curfirst = idcur->GetFirst();
+      Long64_t curlast  = idcur->GetLast();
       if (curlast == first-1) {
          idcur->SetLast(last);
          TFree *idnext = (TFree*)lfree->After(idcur);
@@ -107,9 +107,10 @@ void TFree::FillBuffer(char *&buffer)
    Version_t version = TFree::Class_Version();
    if (fLast > TFile::kStartBigFile) version += 1000;
    tobuf(buffer, version);
+//printf("TFree::fillBuffer, fFirst=%lld, fLast=%lld, version=%d\n",fFirst,fLast,version);
    if (version > 1000) {
-      tobuf(buffer, (Long_t)fFirst);
-      tobuf(buffer, (Long_t)fLast);
+      tobuf(buffer, fFirst);
+      tobuf(buffer, fLast);
    } else {
       tobuf(buffer, (Int_t)fFirst);
       tobuf(buffer, (Int_t)fLast);
@@ -125,13 +126,18 @@ TFree *TFree::GetBestFree(TList *lfree, Int_t nbytes)
    if (idcur == 0) return 0;
    TFree *idcur1 = 0;
    do {
-      Seek_t nleft = Seek_t(idcur->fLast - idcur->fFirst +1);
+      Long64_t nleft = Long64_t(idcur->fLast - idcur->fFirst +1);
       if (nleft == nbytes) return idcur;             //*-* found an exact match
-      if(nleft > nbytes+3) if (idcur1 == 0) idcur1=idcur;
+      if(nleft > (Long64_t)(nbytes+3)) if (idcur1 == 0) idcur1=idcur;
       idcur = (TFree*)lfree->After(idcur);
    } while (idcur !=0);
-   return idcur1;                                    //*-* return first segment >nbytes
-}
+   if (idcur1) return idcur1;                                    //*-* return first segment >nbytes
+   //try big file
+   idcur = (TFree*)lfree->Last();
+   Long64_t last = idcur->fLast+1000000000;
+   idcur->SetLast(last);
+   return idcur;
+   }
 
 //______________________________________________________________________________
 void TFree::ReadBuffer(char *&buffer)
@@ -141,13 +147,12 @@ void TFree::ReadBuffer(char *&buffer)
    Version_t version;
    frombuf(buffer, &version);
    if (version > 1000) {
-      Long_t first,last;
-      frombuf(buffer, &first);  fFirst = (Seek_t)first;
-      frombuf(buffer, &last);   fLast  = (Seek_t)last;
+      frombuf(buffer, &fFirst);
+      frombuf(buffer, &fLast);
    } else {
       Int_t first,last;
-      frombuf(buffer, &first);  fFirst = (Seek_t)first;
-      frombuf(buffer, &last);   fLast  = (Seek_t)last;
+      frombuf(buffer, &first);  fFirst = (Long64_t)first;
+      frombuf(buffer, &last);   fLast  = (Long64_t)last;
    }
 }
 
diff --git a/io/src/TKey.cxx b/io/src/TKey.cxx
index 2fe8d42bc29b91c6365001c09b677c8992cbab05..20c6ddab0a3ba2ede547f1146a952c7021be12c2 100644
--- a/io/src/TKey.cxx
+++ b/io/src/TKey.cxx
@@ -1,4 +1,4 @@
-// @(#)root/base:$Name:  $:$Id: TKey.cxx,v 1.35 2003/12/10 20:36:34 brun Exp $
+// @(#)root/base:$Name:  $:$Id: TKey.cxx,v 1.36 2003/12/10 20:40:45 brun Exp $
 // Author: Rene Brun   28/12/94
 
 /*************************************************************************
@@ -83,7 +83,7 @@ TKey::TKey() : TNamed(), fDatime((UInt_t)0)
 }
 
 //______________________________________________________________________________
-TKey::TKey(Seek_t pointer, Int_t nbytes) : TNamed()
+TKey::TKey(Long64_t pointer, Int_t nbytes) : TNamed()
 {
 //*-*-*-*-*-*-*-*-*-*-*-*-*Create a TKey object to read keys*-*-*-*-*-*-*-*
 //*-*                      =================================
@@ -314,9 +314,9 @@ void TKey::Delete(Option_t *option)
 // This is different from the behaviour of TObject::Delete()!
 
 
-   if (option && option[0] == 'v') printf("Deleting key: %s at address %d, nbytes = %d\n",GetName(),fSeekKey,fNbytes);
-   Seek_t first = fSeekKey;
-   Seek_t last  = fSeekKey + fNbytes -1;
+   if (option && option[0] == 'v') printf("Deleting key: %s at address %lld, nbytes = %d\n",GetName(),fSeekKey,fNbytes);
+   Long64_t first = fSeekKey;
+   Long64_t last  = fSeekKey + fNbytes -1;
    gFile->MakeFree(first, last);  // release space used by this key
    gDirectory->GetListOfKeys()->Remove(this);
 }
@@ -365,8 +365,8 @@ void TKey::FillBuffer(char *&buffer)
   tobuf(buffer, fKeylen);
   tobuf(buffer, fCycle);
   if (fVersion > 1000) {
-     tobuf(buffer, (Long_t)fSeekKey);
-     tobuf(buffer, (Long_t)fSeekPdir);
+     tobuf(buffer, fSeekKey);
+     tobuf(buffer, fSeekPdir);
   } else {
      tobuf(buffer, (Int_t)fSeekKey);
      tobuf(buffer, (Int_t)fSeekPdir);
@@ -621,13 +621,12 @@ void TKey::ReadBuffer(char *&buffer)
    frombuf(buffer, &fKeylen);
    frombuf(buffer, &fCycle);
    if (fVersion > 1000) {
-      Long_t seekkey,seekdir;
-      frombuf(buffer, &seekkey); fSeekKey = (Seek_t)seekkey;
-      frombuf(buffer, &seekdir); fSeekPdir= (Seek_t)seekdir;
+      frombuf(buffer, &fSeekKey);
+      frombuf(buffer, &fSeekPdir);
    } else {
       Int_t seekkey,seekdir;
-      frombuf(buffer, &seekkey); fSeekKey = (Seek_t)seekkey;
-      frombuf(buffer, &seekdir); fSeekPdir= (Seek_t)seekdir;
+      frombuf(buffer, &seekkey); fSeekKey = (Long64_t)seekkey;
+      frombuf(buffer, &seekdir); fSeekPdir= (Long64_t)seekdir;
    }
    fClassName.ReadBuffer(buffer);
    fName.ReadBuffer(buffer);
@@ -702,13 +701,12 @@ void TKey::Streamer(TBuffer &b)
       b >> fKeylen;
       b >> fCycle;
       if (fVersion > 1000) {
-         Long_t seekkey, seekdir;
-         b >> seekkey; fSeekKey = (Seek_t)seekkey;
-         b >> seekdir; fSeekPdir= (Seek_t)seekdir;
+         b >> fSeekKey;
+         b >> fSeekPdir;
       } else {
          Int_t seekkey, seekdir;
-         b >> seekkey; fSeekKey = (Seek_t)seekkey;
-         b >> seekdir; fSeekPdir= (Seek_t)seekdir;
+         b >> seekkey; fSeekKey = (Long64_t)seekkey;
+         b >> seekdir; fSeekPdir= (Long64_t)seekdir;
       }
       fClassName.Streamer(b);
       fName.Streamer(b);
@@ -723,8 +721,8 @@ void TKey::Streamer(TBuffer &b)
       b << fKeylen;
       b << fCycle;
       if (fVersion > 1000) {
-         b << (Long_t)fSeekKey;
-         b << (Long_t)fSeekPdir;
+         b << fSeekKey;
+         b << fSeekPdir;
       } else {
          b << (Int_t)fSeekKey;
          b << (Int_t)fSeekPdir;
diff --git a/net/inc/TCache.h b/net/inc/TCache.h
index 0c1df10370d5da9224b0a258cc91c6a5b87fe70b..fc002b4dee289bff9319cf8a4b771b41c5d70d5c 100644
--- a/net/inc/TCache.h
+++ b/net/inc/TCache.h
@@ -1,4 +1,4 @@
-// @(#)root/net:$Name:  $:$Id: TCache.h,v 1.3 2001/01/16 17:23:26 rdm Exp $
+// @(#)root/net:$Name:  $:$Id: TCache.h,v 1.4 2001/04/11 11:10:44 brun Exp $
 // Author: Fons Rademakers   13/01/2001
 
 /*************************************************************************
@@ -58,12 +58,12 @@ private:
    class TPage : public TObject {
    friend class TCache;
    private:
-      Seek_t    fOffset; // offset of page in file
-      char     *fData;   // pointer to page data
-      Int_t     fSize;   // size of page
+      Long64_t   fOffset;  // offset of page in file
+      char      *fData;    // pointer to page data
+      Int_t      fSize;    // size of page
    public:
       enum { kDirty = BIT(14), kLocked = BIT(15) };
-      TPage(Seek_t offset, char *page, Int_t size)
+      TPage(Long64_t offset, char *page, Int_t size)
          { fOffset = offset; fData = page; fSize = size; }
       ~TPage() { delete [] fData; }
       ULong_t Hash() const { return fOffset; }
@@ -73,7 +73,7 @@ private:
       Int_t   Compare(const TObject *obj) const
          { return fOffset > ((const TPage*)obj)->fOffset ? 1 :
                   fOffset < ((const TPage*)obj)->fOffset ? -1 : 0; }
-      Seek_t  Offset() const { return fOffset; }
+      Long64_t  Offset() const { return fOffset; }
       char   *Data() const { return fData; }
       Int_t   Size() const { return fSize; }
    };
@@ -88,7 +88,7 @@ private:
    TSortedList *fNew;           // list constaining new pages that have to be written to disk
    TList       *fFree;          // list containing unused pages
    TFile       *fFile;          // file for which pages are being cached
-   Seek_t       fEOF;           // end of file
+   Long64_t     fEOF;           // end of file
    ULong_t      fHighWater;     // high water mark (i.e. maximum cache size in bytes)
    ULong_t      fLowWater;      // low water mark (free pages till low water mark is reached)
    Int_t        fPageSize;      // size of cached pages
@@ -97,7 +97,7 @@ private:
    Bool_t       fRecursive;     // true to prevent recusively calling ReadBuffer()
 
    void   SetPageSize(Int_t size);
-   TPage *ReadPage(Seek_t offset);
+   TPage *ReadPage(Long64_t offset);
    Int_t  WritePage(TPage *page);
    Int_t  FlushList(TList *list);
    Int_t  FlushNew();
@@ -119,8 +119,8 @@ public:
    Int_t Resize(Int_t maxCacheSize);
    void  SetLowLevel(Int_t percentOfHigh);
 
-   Int_t ReadBuffer(Seek_t offset, char *buf, Int_t len);
-   Int_t WriteBuffer(Seek_t offset, const char *buf, Int_t len);
+   Int_t ReadBuffer(Long64_t offset, char *buf, Int_t len);
+   Int_t WriteBuffer(Long64_t offset, const char *buf, Int_t len);
    Int_t Flush();
 
    ClassDef(TCache,0)  // Page cache used for remote I/O
diff --git a/net/inc/TFTP.h b/net/inc/TFTP.h
index 8b911457ad68e4bdccaecc49d5663247c16a5502..4e04f2e24821a528e0fd1776248b93fed642037d 100644
--- a/net/inc/TFTP.h
+++ b/net/inc/TFTP.h
@@ -1,4 +1,4 @@
-// @(#)root/net:$Name:  $:$Id: TFTP.h,v 1.6 2001/03/01 07:21:23 rdm Exp $
+// @(#)root/net:$Name:  $:$Id: TFTP.h,v 1.7 2002/11/07 18:17:46 rdm Exp $
 // Author: Fons Rademakers   13/02/2001
 
 /*************************************************************************
@@ -48,7 +48,7 @@ private:
    Int_t      fLastBlock;   // last block successfully transfered
    Int_t      fBlockSize;   // size of data buffer used to transfer
    Int_t      fMode;        // binary or ascii file transfer mode
-   Seek_t     fRestartAt;   // restart transmission at specified offset
+   Long64_t   fRestartAt;   // restart transmission at specified offset
    TString    fCurrentFile; // file currently being get or put
    TSocket   *fSocket;      //! connection to rootd
    Double_t   fBytesWrite;  // number of bytes sent
@@ -76,28 +76,28 @@ public:
    TFTP(const char *url, Int_t parallel = 1, Int_t wsize = kDfltWindowSize);
    virtual ~TFTP();
 
-   void   SetBlockSize(Int_t blockSize);
-   Int_t  GetBlockSize() const { return fBlockSize; }
-   void   SetRestartAt(Seek_t at) { fRestartAt = at; }
-   Seek_t GetRestartAt() const { return fRestartAt; }
-   Int_t  GetMode() const { return fMode; }
-
-   Bool_t IsOpen() const { return fSocket ? kTRUE : kFALSE; }
-   void   Print(Option_t *opt = "") const;
-
-   Seek_t PutFile(const char *file, const char *remoteName = 0);
-   Seek_t GetFile(const char *file, const char *localName = 0);
-   Int_t  ChangeDirectory(const char *dir) const;
-   Int_t  MakeDirectory(const char *dir) const;
-   Int_t  DeleteDirectory(const char *dir) const;
-   Int_t  ListDirectory(Option_t *cmd = "") const;
-   Int_t  PrintDirectory() const;
-   Int_t  RenameFile(const char *file1, const char *file2) const;
-   Int_t  DeleteFile(const char *file) const;
-   Int_t  ChangePermission(const char *file, Int_t mode) const;
-   Int_t  Close();
-   void   Binary() { SetMode(kBinary); }
-   void   Ascii() { SetMode(kAscii); }
+   void     SetBlockSize(Int_t blockSize);
+   Int_t    GetBlockSize() const { return fBlockSize; }
+   void     SetRestartAt(Long64_t at) { fRestartAt = at; }
+   Long64_t GetRestartAt() const { return fRestartAt; }
+   Int_t    GetMode() const { return fMode; }
+
+   Bool_t   IsOpen() const { return fSocket ? kTRUE : kFALSE; }
+   void     Print(Option_t *opt = "") const;
+
+   Long64_t PutFile(const char *file, const char *remoteName = 0);
+   Long64_t GetFile(const char *file, const char *localName = 0);
+   Int_t    ChangeDirectory(const char *dir) const;
+   Int_t    MakeDirectory(const char *dir) const;
+   Int_t    DeleteDirectory(const char *dir) const;
+   Int_t    ListDirectory(Option_t *cmd = "") const;
+   Int_t    PrintDirectory() const;
+   Int_t    RenameFile(const char *file1, const char *file2) const;
+   Int_t    DeleteFile(const char *file) const;
+   Int_t    ChangePermission(const char *file, Int_t mode) const;
+   Int_t    Close();
+   void     Binary() { SetMode(kBinary); }
+   void     Ascii() { SetMode(kAscii); }
 
    // standard ftp equivalents...
    void put(const char *file, const char *remoteName = 0) { PutFile(file, remoteName); }
diff --git a/net/inc/TNetFile.h b/net/inc/TNetFile.h
index 3ab06262e7d445fc18333e40821a54fcffc6adf2..5fe3494c8f28fff046fc62914f6eb846b6cd6528 100644
--- a/net/inc/TNetFile.h
+++ b/net/inc/TNetFile.h
@@ -1,4 +1,4 @@
-// @(#)root/net:$Name:  $:$Id: TNetFile.h,v 1.11 2003/08/29 10:41:28 rdm Exp $
+// @(#)root/net:$Name:  $:$Id: TNetFile.h,v 1.12 2003/09/21 21:38:31 rdm Exp $
 // Author: Fons Rademakers   14/08/97
 
 /*************************************************************************
@@ -40,7 +40,7 @@ class TNetFile : public TFile {
 protected:
    TUrl      fUrl;        //URL of file
    TString   fUser;       //remote user name
-   Seek_t    fOffset;     //seek offset
+   Long64_t  fOffset;     //seek offset
    TSocket  *fSocket;     //connection to rootd server
    Int_t     fProtocol;   //rootd protocol level
    Int_t     fErrorCode;  //error code returned by rootd (matching gRootdErrStr)
@@ -58,7 +58,7 @@ protected:
    Int_t  Recv(Int_t &status, EMessageTypes &kind);
    Int_t  SysOpen(const char *pathname, Int_t flags, UInt_t mode);
    Int_t  SysClose(Int_t fd);
-   Int_t  SysStat(Int_t fd, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime);
+   Int_t  SysStat(Int_t fd, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime);
 
 public:
    TNetFile(const char *url, Option_t *option = "", const char *ftitle = "",
@@ -66,14 +66,14 @@ public:
    TNetFile() : fUrl("dummy") { fSocket = 0; }
    virtual ~TNetFile();
 
-   void    Close(Option_t *option="");  //*MENU*
+   void    Close(Option_t *option="");  // *MENU*
    void    Flush();
    Int_t   GetErrorCode() const { return fErrorCode; }
    Bool_t  IsOpen() const;
    Int_t   ReOpen(Option_t *mode);
    Bool_t  ReadBuffer(char *buf, Int_t len);
    Bool_t  WriteBuffer(const char *buf, Int_t len);
-   void    Seek(Seek_t offset, ERelativeTo pos = kBeg);
+   void    Seek(Long64_t offset, ERelativeTo pos = kBeg);
 
    static  Int_t GetClientProtocol();
 
diff --git a/net/inc/TWebFile.h b/net/inc/TWebFile.h
index 05882b76e716ba9f8b9f00917c966890bdb767a6..9166dd9873464cc6d400f2a9575c4ff6acff6f50 100644
--- a/net/inc/TWebFile.h
+++ b/net/inc/TWebFile.h
@@ -1,4 +1,4 @@
-// @(#)root/net:$Name:  $:$Id: TWebFile.h,v 1.4 2002/11/07 18:17:46 rdm Exp $
+// @(#)root/net:$Name:  $:$Id: TWebFile.h,v 1.5 2002/12/10 02:19:46 rdm Exp $
 // Author: Fons Rademakers   17/01/97
 
 /*************************************************************************
@@ -35,7 +35,7 @@ class TWebFile : public TFile {
 
 private:
    TUrl     fUrl;        // URL of file
-   Seek_t   fOffset;     // seek offset
+   Long64_t fOffset;     // seek offset
 
    TWebFile() : fUrl("dummy") { }
    void Init(Bool_t);
@@ -45,11 +45,11 @@ public:
    TWebFile(TUrl url);
    virtual ~TWebFile() { }
 
-   Seek_t  GetSize() const;
-   Bool_t  IsOpen() const;
-   Int_t   ReOpen(Option_t *mode);
-   Bool_t  ReadBuffer(char *buf, Int_t len);
-   void    Seek(Seek_t offset, ERelativeTo pos = kBeg);
+   Long64_t GetSize() const;
+   Bool_t   IsOpen() const;
+   Int_t    ReOpen(Option_t *mode);
+   Bool_t   ReadBuffer(char *buf, Int_t len);
+   void     Seek(Long64_t offset, ERelativeTo pos = kBeg);
 
    ClassDef(TWebFile,1)  //A ROOT file that reads via a http server
 };
diff --git a/net/src/TCache.cxx b/net/src/TCache.cxx
index 1f26476fbb4819a99873554d2fd69982fbcd215c..daae953f3210e22a864d0aec5a5d309ab43516ac 100644
--- a/net/src/TCache.cxx
+++ b/net/src/TCache.cxx
@@ -1,4 +1,4 @@
-// @(#)root/net:$Name:  $:$Id: TCache.cxx,v 1.4 2001/01/17 12:11:53 rdm Exp $
+// @(#)root/net:$Name:  $:$Id: TCache.cxx,v 1.5 2001/02/09 14:04:26 rdm Exp $
 // Author: Fons Rademakers   13/01/2001
 
 /*************************************************************************
@@ -101,7 +101,7 @@ void TCache::SetPageSize(Int_t size)
 }
 
 //______________________________________________________________________________
-TCache::TPage *TCache::ReadPage(Seek_t offset)
+TCache::TPage *TCache::ReadPage(Long64_t offset)
 {
    // Read the page starting at offset in the cache and return the
    // page object. If there are no more free pages free pages up
@@ -156,7 +156,7 @@ TCache::TPage *TCache::ReadPage(Seek_t offset)
 }
 
 //______________________________________________________________________________
-Int_t TCache::ReadBuffer(Seek_t offset, char *buf, Int_t len)
+Int_t TCache::ReadBuffer(Long64_t offset, char *buf, Int_t len)
 {
    // Return in buf len bytes starting at offset. Returns < 0 in
    // case of error, 0 in case ReadBuffer() was recursively called
@@ -165,9 +165,9 @@ Int_t TCache::ReadBuffer(Seek_t offset, char *buf, Int_t len)
    if (fRecursive) return 0;
 
    // Find in which page offset is located
-   Seek_t pageoffset = (offset >> fDiv) << fDiv;  // offset & ~(fPageSize-1)
+   Long64_t pageoffset = (offset >> fDiv) << fDiv;  // offset & ~(fPageSize-1)
    Int_t  begin = Int_t(offset & (fPageSize-1));
-   Seek_t boff  = 0;
+   Long64_t boff  = 0;
 
    do {
       Int_t blen = begin+len>fPageSize ? fPageSize-begin : len;
@@ -222,7 +222,7 @@ Int_t TCache::WritePage(TPage *page)
 }
 
 //______________________________________________________________________________
-Int_t TCache::WriteBuffer(Seek_t offset, const char *buf, Int_t len)
+Int_t TCache::WriteBuffer(Long64_t offset, const char *buf, Int_t len)
 {
    // Write a buffer to the cache. Returns < 0 in case of error, 0 in
    // case WriteBuffer() was recursively called via WritePage() and 1
@@ -231,9 +231,9 @@ Int_t TCache::WriteBuffer(Seek_t offset, const char *buf, Int_t len)
    if (fRecursive) return 0;
 
    // Find in which page offset is located
-   Seek_t pageoffset = (offset >> fDiv) << fDiv;  // offset & ~(fPageSize-1)
+   Long64_t pageoffset = (offset >> fDiv) << fDiv;  // offset & ~(fPageSize-1)
    Int_t  begin = Int_t(offset & (fPageSize-1));
-   Seek_t boff  = 0;
+   Long64_t boff  = 0;
 
    do {
       Int_t blen = begin+len>fPageSize ? fPageSize-begin : len;
diff --git a/net/src/TFTP.cxx b/net/src/TFTP.cxx
index f3f8a29c0bf6d92703c2c13265a8f122d7b3a508..cfedb148b5cf85c8e977b7ef45934a2ecf664649 100644
--- a/net/src/TFTP.cxx
+++ b/net/src/TFTP.cxx
@@ -1,4 +1,4 @@
-// @(#)root/net:$Name:  $:$Id: TFTP.cxx,v 1.16 2003/10/22 18:48:36 rdm Exp $
+// @(#)root/net:$Name:  $:$Id: TFTP.cxx,v 1.17 2003/11/26 10:33:08 rdm Exp $
 // Author: Fons Rademakers   13/02/2001
 
 /*************************************************************************
@@ -235,7 +235,7 @@ void TFTP::SetBlockSize(Int_t blockSize)
 }
 
 //______________________________________________________________________________
-Seek_t TFTP::PutFile(const char *file, const char *remoteName)
+Long64_t TFTP::PutFile(const char *file, const char *remoteName)
 {
    // Transfer file to remote host. Returns number of bytes
    // sent or < 0 in case of error. Error -1 connection is still
@@ -259,7 +259,8 @@ Seek_t TFTP::PutFile(const char *file, const char *remoteName)
       return -1;
    }
 
-   Long_t id, size, flags, modtime;
+   Long64_t size;
+   Long_t id, flags, modtime;
    if (gSystem->GetPathInfo(file, &id, &size, &flags, &modtime) == 0) {
       if (flags > 1) {
          Error("PutFile", "%s not a regular file (%ld)", file, flags);
@@ -303,7 +304,7 @@ Seek_t TFTP::PutFile(const char *file, const char *remoteName)
    TStopwatch timer;
    timer.Start();
 
-   Seek_t pos = restartat & ~(fBlockSize-1);
+   Long64_t pos = restartat & ~(fBlockSize-1);
    Int_t skip = restartat - pos;
 
 #ifndef HAVE_MMAP
@@ -312,7 +313,7 @@ Seek_t TFTP::PutFile(const char *file, const char *remoteName)
 #endif
 
    while (pos < size) {
-      Seek_t left = Seek_t(size - pos);
+      Long64_t left = Long64_t(size - pos);
       if (left > fBlockSize)
          left = fBlockSize;
 #ifdef HAVE_MMAP
@@ -391,11 +392,11 @@ Seek_t TFTP::PutFile(const char *file, const char *remoteName)
       Printf("<TFTP::PutFile>: %.3f seconds, %.2f bytes per second",
              t, speed);
 
-   return Seek_t(size - restartat);
+   return Long64_t(size - restartat);
 }
 
 //______________________________________________________________________________
-Seek_t TFTP::GetFile(const char *file, const char *localName)
+Long64_t TFTP::GetFile(const char *file, const char *localName)
 {
    // Transfer file from remote host. Returns number of bytes
    // received or < 0 in case of error. Error -1 connection is still
@@ -442,7 +443,7 @@ Seek_t TFTP::GetFile(const char *file, const char *localName)
       return -2;
    }
    sscanf(mess, "%ld", &sizel);
-   Seek_t size = (Seek_t) sizel;
+   Long64_t size = (Long64_t) sizel;
 
    // check if restartat value makes sense
    if (restartat && (restartat >= size))
@@ -515,11 +516,11 @@ Seek_t TFTP::GetFile(const char *file, const char *localName)
    if (fMode == kAscii)
       buf2 = new char[fBlockSize];
 
-   Seek_t pos = restartat & ~(fBlockSize-1);
+   Long64_t pos = restartat & ~(fBlockSize-1);
    Int_t skip = restartat - pos;
 
    while (pos < size) {
-      Seek_t left = size - pos;
+      Long64_t left = size - pos;
       if (left > fBlockSize)
          left = fBlockSize;
 
@@ -606,7 +607,7 @@ Seek_t TFTP::GetFile(const char *file, const char *localName)
       Printf("<TFTP::GetFile>: %.3f seconds, %.2f bytes per second",
              t, speed);
 
-   return Seek_t(size - restartat);
+   return Long64_t(size - restartat);
 }
 
 //______________________________________________________________________________
diff --git a/net/src/TNetFile.cxx b/net/src/TNetFile.cxx
index 38f10c8f2dddd5cbe38dd2b8ed4e1cfa14e9aabd..e3c947bedce995a9aa4441a1f7b8c6a608262817 100644
--- a/net/src/TNetFile.cxx
+++ b/net/src/TNetFile.cxx
@@ -1,4 +1,4 @@
-// @(#)root/net:$Name:  $:$Id: TNetFile.cxx,v 1.41 2003/11/28 18:01:41 rdm Exp $
+// @(#)root/net:$Name:  $:$Id: TNetFile.cxx,v 1.42 2003/12/10 11:03:40 rdm Exp $
 // Author: Fons Rademakers   14/08/97
 
 /*************************************************************************
@@ -147,7 +147,7 @@ Int_t TNetFile::SysClose(Int_t /*fd*/)
 }
 
 //______________________________________________________________________________
-Int_t TNetFile::SysStat(Int_t, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime)
+Int_t TNetFile::SysStat(Int_t, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime)
 {
    // Return file stat information. The interface and return value is
    // identical to TSystem::GetPathInfo().
@@ -162,7 +162,7 @@ Int_t TNetFile::SysStat(Int_t, Long_t *id, Long_t *size, Long_t *flags, Long_t *
    Int_t kind;
    fSocket->Recv(msg, 128, kind);
 
-   sscanf(msg, "%ld %ld %ld %ld", id, size, flags, modtime);
+   sscanf(msg, "%ld %lld %ld %ld", id, size, flags, modtime);
 
    if (*id == -1)
       return 1;
@@ -267,7 +267,7 @@ Bool_t TNetFile::ReadBuffer(char *buf, Int_t len)
 
    if (fCache) {
       Int_t st;
-      Seek_t off = fOffset;
+      Long64_t off = fOffset;
       if ((st = fCache->ReadBuffer(fOffset, buf, len)) < 0) {
          Error("ReadBuffer", "error reading from cache");
          return kTRUE;
@@ -335,7 +335,7 @@ Bool_t TNetFile::WriteBuffer(const char *buf, Int_t len)
 
    if (fCache) {
       Int_t st;
-      Seek_t off = fOffset;
+      Long64_t off = fOffset;
       if ((st = fCache->WriteBuffer(fOffset, buf, len)) < 0) {
          Error("WriteBuffer", "error writing to cache");
          return kTRUE;
@@ -403,7 +403,7 @@ Int_t TNetFile::Recv(Int_t &status, EMessageTypes &kind)
 }
 
 //______________________________________________________________________________
-void TNetFile::Seek(Seek_t offset, ERelativeTo pos)
+void TNetFile::Seek(Long64_t offset, ERelativeTo pos)
 {
    // Set position from where to start reading.
 
diff --git a/net/src/TWebFile.cxx b/net/src/TWebFile.cxx
index 0a1b0825a5e548744145051f43d7d7f80886b36e..c54481351080efd3b9acf4f1feeeae7f3b01f3f0 100644
--- a/net/src/TWebFile.cxx
+++ b/net/src/TWebFile.cxx
@@ -1,4 +1,4 @@
-// @(#)root/net:$Name:  $:$Id: TWebFile.cxx,v 1.5 2002/12/10 02:19:46 rdm Exp $
+// @(#)root/net:$Name:  $:$Id: TWebFile.cxx,v 1.6 2002/12/10 12:11:31 rdm Exp $
 // Author: Fons Rademakers   17/01/97
 
 /*************************************************************************
@@ -148,7 +148,7 @@ Bool_t TWebFile::ReadBuffer(char *buf, Int_t len)
 }
 
 //______________________________________________________________________________
-void TWebFile::Seek(Seek_t offset, ERelativeTo pos)
+void TWebFile::Seek(Long64_t offset, ERelativeTo pos)
 {
    // Set position from where to start reading.
 
@@ -166,7 +166,7 @@ void TWebFile::Seek(Seek_t offset, ERelativeTo pos)
 }
 
 //______________________________________________________________________________
-Seek_t TWebFile::GetSize() const
+Long64_t TWebFile::GetSize() const
 {
    // Return maximum file size to by-pass truncation checking.
 
diff --git a/proof/src/TProof.cxx b/proof/src/TProof.cxx
index 38e166637b659e4fb6351ad66d7f00a0039c36ab..156cf329f56b8891b6aa584be271a45521366e3c 100644
--- a/proof/src/TProof.cxx
+++ b/proof/src/TProof.cxx
@@ -1,4 +1,4 @@
-// @(#)root/proof:$Name:  $:$Id: TProof.cxx,v 1.58 2003/11/25 11:34:58 rdm Exp $
+// @(#)root/proof:$Name:  $:$Id: TProof.cxx,v 1.59 2003/12/02 08:37:41 rdm Exp $
 // Author: Fons Rademakers   13/02/97
 
 /*************************************************************************
@@ -1457,7 +1457,8 @@ Long_t TProof::CheckFile(const char *file, TSlave *slave)
    // Returns size of file in case file needs to be send, returns 0 in case
    // file is already on remote and -1 in case of error.
 
-   Long_t id, size, flags, modtime;
+   Long64_t size;
+   Long_t id, flags, modtime;
    if (gSystem->GetPathInfo(file, &id, &size, &flags, &modtime) == 1) {
       Error("CheckFile", "cannot stat file %s", file);
       return -1;
diff --git a/proof/src/TProofServ.cxx b/proof/src/TProofServ.cxx
index 6d6187ae3157212071e2455cc6b96122fe1ca9c1..9847928010242bd491a1140124295d6bfdcf2ef1 100644
--- a/proof/src/TProofServ.cxx
+++ b/proof/src/TProofServ.cxx
@@ -1,4 +1,4 @@
-// @(#)root/proof:$Name:  $:$Id: TProofServ.cxx,v 1.61 2003/11/26 10:33:08 rdm Exp $
+// @(#)root/proof:$Name:  $:$Id: TProofServ.cxx,v 1.62 2003/12/02 08:37:41 rdm Exp $
 // Author: Fons Rademakers   16/02/97
 
 /*************************************************************************
@@ -387,7 +387,8 @@ Int_t TProofServ::CatMotd()
    // get last modification time of the file ~/proof/.prooflast
    lastname = TString(kPROOF_WorkDir) + "/.prooflast";
    char *last = gSystem->ExpandPathName(lastname.Data());
-   Long_t id, size, flags, modtime, lasttime;
+   Long64_t size;
+   Long_t id, flags, modtime, lasttime;
    if (gSystem->GetPathInfo(last, &id, &size, &flags, &lasttime) == 1)
       lasttime = 0;
 
diff --git a/rfio/inc/TRFIOFile.h b/rfio/inc/TRFIOFile.h
index 4775a3297a8d59f815e9386d0e6d0b40bea18189..b0a5cdbb1767d4a32fe6fe5d1087caac5edb5cc7 100644
--- a/rfio/inc/TRFIOFile.h
+++ b/rfio/inc/TRFIOFile.h
@@ -1,4 +1,4 @@
-// @(#)root/rfio:$Name:  $:$Id: TRFIOFile.h,v 1.7 2002/10/25 00:44:53 rdm Exp $
+// @(#)root/rfio:$Name:  $:$Id: TRFIOFile.h,v 1.8 2003/01/13 15:05:29 rdm Exp $
 // Author: Fons Rademakers   20/01/99
 
 /*************************************************************************
@@ -37,18 +37,18 @@ class TRFIOFile : public TFile {
 
 private:
    TUrl      fUrl;        //URL of file
-   Seek_t    fOffset;     //seek offet
+   Long64_t  fOffset;     //seek offet
 
    TRFIOFile() : fUrl("dummy") { }
 
    // Interface to basic system I/O routines
-   Int_t  SysOpen(const char *pathname, Int_t flags, UInt_t mode);
-   Int_t  SysClose(Int_t fd);
-   Int_t  SysRead(Int_t fd, void *buf, Int_t len);
-   Int_t  SysWrite(Int_t fd, const void *buf, Int_t len);
-   Seek_t SysSeek(Int_t fd, Seek_t offset, Int_t whence);
-   Int_t  SysStat(Int_t fd, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime);
-   Int_t  SysSync(Int_t) { /* no fsync for RFIO */ return 0; }
+   Int_t    SysOpen(const char *pathname, Int_t flags, UInt_t mode);
+   Int_t    SysClose(Int_t fd);
+   Int_t    SysRead(Int_t fd, void *buf, Int_t len);
+   Int_t    SysWrite(Int_t fd, const void *buf, Int_t len);
+   Long64_t SysSeek(Int_t fd, Long64_t offset, Int_t whence);
+   Int_t    SysStat(Int_t fd, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime);
+   Int_t    SysSync(Int_t) { /* no fsync for RFIO */ return 0; }
 
 public:
    TRFIOFile(const char *url, Option_t *option="",
@@ -80,7 +80,7 @@ public:
    void       *OpenDirectory(const char *name);
    void        FreeDirectory(void *dirp);
    const char *GetDirEntry(void *dirp);
-   Int_t       GetPathInfo(const char *path, Long_t *id, Long_t *size,
+   Int_t       GetPathInfo(const char *path, Long_t *id, Long64_t *size,
                            Long_t *flags, Long_t *modtime);
    Bool_t      AccessPathName(const char *path, EAccessMode mode);
 
diff --git a/rfio/src/TRFIOFile.cxx b/rfio/src/TRFIOFile.cxx
index bf6e5fd0f8e85b473770e6ff7dd8c098bd0eb1ba..298761a6f8ffb1a0208e3fcab0bd02767d180b57 100644
--- a/rfio/src/TRFIOFile.cxx
+++ b/rfio/src/TRFIOFile.cxx
@@ -1,4 +1,4 @@
-// @(#)root/rfio:$Name:  $:$Id: TRFIOFile.cxx,v 1.26 2003/11/13 14:37:29 rdm Exp $
+// @(#)root/rfio:$Name:  $:$Id: TRFIOFile.cxx,v 1.27 2003/12/02 07:49:11 rdm Exp $
 // Author: Fons Rademakers   20/01/99
 
 /*************************************************************************
@@ -278,7 +278,7 @@ Int_t TRFIOFile::SysWrite(Int_t fd, const void *buf, Int_t len)
 }
 
 //______________________________________________________________________________
-Seek_t TRFIOFile::SysSeek(Int_t fd, Seek_t offset, Int_t whence)
+Long64_t TRFIOFile::SysSeek(Int_t fd, Long64_t offset, Int_t whence)
 {
    // Interface to system lseek. All arguments like in POSIX lseek
    // except that the offset and return value are Long_t to be able to
@@ -286,7 +286,7 @@ Seek_t TRFIOFile::SysSeek(Int_t fd, Seek_t offset, Int_t whence)
 
    if (whence == SEEK_SET && offset == fOffset) return offset;
 
-   Seek_t ret = ::rfio_lseek(fd, offset, whence);
+   Long64_t ret = ::rfio_lseek(fd, offset, whence);
 
    if (ret < 0)
       gSystem->SetErrorStr(::rfio_serror());
@@ -297,7 +297,7 @@ Seek_t TRFIOFile::SysSeek(Int_t fd, Seek_t offset, Int_t whence)
 }
 
 //______________________________________________________________________________
-Int_t TRFIOFile::SysStat(Int_t fd, Long_t *id, Long_t *size, Long_t *flags,
+Int_t TRFIOFile::SysStat(Int_t fd, Long_t *id, Long64_t *size, Long_t *flags,
                          Long_t *modtime)
 {
    // Interface to TSystem:GetPathInfo(). Generally implemented via
@@ -341,7 +341,7 @@ Bool_t TRFIOFile::ReadBuffer(char *buf, Int_t len)
 
    if (fCache) {
       Int_t st;
-      Seek_t off = fOffset;
+      Long64_t off = fOffset;
       if ((st = fCache->ReadBuffer(fOffset, buf, len)) < 0) {
          Error("ReadBuffer", "error reading from cache");
          return kTRUE;
@@ -366,7 +366,7 @@ Bool_t TRFIOFile::WriteBuffer(const char *buf, Int_t len)
 
    if (fCache) {
       Int_t st;
-      Seek_t off = fOffset;
+      Long64_t off = fOffset;
       if ((st = fCache->WriteBuffer(fOffset, buf, len)) < 0) {
          Error("WriteBuffer", "error writing to cache");
          return kTRUE;
@@ -496,7 +496,7 @@ const char *TRFIOSystem::GetDirEntry(void *dirp)
 }
 
 //______________________________________________________________________________
-Int_t TRFIOSystem::GetPathInfo(const char *path, Long_t *id, Long_t *size,
+Int_t TRFIOSystem::GetPathInfo(const char *path, Long_t *id, Long64_t *size,
                                Long_t *flags, Long_t *modtime)
 {
    // Get info about a file: id, size, flags, modification time.
diff --git a/table/src/TFileSet.cxx b/table/src/TFileSet.cxx
index a5fd94d80cf222da4becda4128810cfb36bb37b3..4b35edae685f0466d2cc39afc3f114226d486f51 100644
--- a/table/src/TFileSet.cxx
+++ b/table/src/TFileSet.cxx
@@ -1,6 +1,6 @@
-// @(#)root/star:$Name:  $:$Id: TFileSet.cxx,v 1.2 2003/01/03 15:03:13 fisyak Exp $
+// @(#)root/star:$Name:  $:$Id: TFileSet.cxx,v 1.2 2003/01/27 20:41:36 brun Exp $
 // Author: Valery Fine(fine@mail.cern.ch)   03/07/98
-// $Id: TFileSet.cxx,v 1.2 2003/01/03 15:03:13 fisyak Exp $
+// $Id: TFileSet.cxx,v 1.2 2003/01/27 20:41:36 brun Exp $
 
 #include "TFileSet.h"
 #include "TBrowser.h"
@@ -59,7 +59,8 @@ TFileSet::TFileSet(const TString &dirname,const Char_t *setname,Bool_t expand, I
 
   if (!maxDepth) return;
 
-  Long_t id, size, flags, modtime;
+  Long64_t size;
+  Long_t id, flags, modtime;
   TString dirbuf = dirname;
 
   if (expand) gSystem->ExpandPathName(dirbuf);
diff --git a/tree/inc/TBasket.h b/tree/inc/TBasket.h
index 46bcb7f9ba2002e7bde6516b8a85d3f498c0a422..f2b985118ac6e7009c1e8ef25d98177bd35e508e 100644
--- a/tree/inc/TBasket.h
+++ b/tree/inc/TBasket.h
@@ -1,4 +1,4 @@
-// @(#)root/tree:$Name:  $:$Id: TBasket.h,v 1.7 2002/02/03 16:15:01 brun Exp $
+// @(#)root/tree:$Name:  $:$Id: TBasket.h,v 1.8 2003/04/30 16:29:31 brun Exp $
 // Author: Rene Brun   19/01/96
 
 /*************************************************************************
@@ -65,8 +65,8 @@ public:
             Int_t   GetNevBuf() const {return fNevBuf;}
             Int_t   GetNevBufSize() const {return fNevBufSize;}
             Int_t   GetLast() const {return fLast;}
-            Int_t   ReadBasketBuffers(Seek_t pos, Int_t len, TFile *file);
-            Int_t   ReadBasketBytes(Seek_t pos, TFile *file);
+            Int_t   ReadBasketBuffers(Long64_t pos, Int_t len, TFile *file);
+            Int_t   ReadBasketBytes(Long64_t pos, TFile *file);
 
             void    SetBranch(TBranch *branch) {fBranch = branch;}
             void    SetNevBufSize(Int_t n) {fNevBufSize=n;}
diff --git a/tree/inc/TBranch.h b/tree/inc/TBranch.h
index 54ded74605772535bf6451130262eab8d84cb22c..0890085460d0586b258a96b2ed02646ecabe8c88 100644
--- a/tree/inc/TBranch.h
+++ b/tree/inc/TBranch.h
@@ -1,4 +1,4 @@
-// @(#)root/tree:$Name:  $:$Id: TBranch.h,v 1.19 2003/07/04 13:27:35 brun Exp $
+// @(#)root/tree:$Name:  $:$Id: TBranch.h,v 1.20 2003/11/12 07:23:08 brun Exp $
 // Author: Rene Brun   12/01/96
 
 /*************************************************************************
@@ -84,7 +84,7 @@ protected:
     Int_t      *fBasketRAM;       //! [fNBasketRAM] table of basket numbers in memory
     Int_t      *fBasketBytes;     //[fMaxBaskets] Lenght of baskets on file
     Int_t      *fBasketEntry;     //[fMaxBaskets] Table of first entry in eack basket
-    Seek_t     *fBasketSeek;      //[fMaxBaskets] Addresses of baskets on file
+    Long64_t   *fBasketSeek;      //[fMaxBaskets] Addresses of baskets on file
     TTree      *fTree;            //! Pointer to Tree header
     char       *fAddress;         //! Address of 1st leaf (variable or object)
     TDirectory *fDirectory;       //! Pointer to directory where this branch buffers are stored
@@ -119,7 +119,7 @@ public:
             TBasket *GetBasket(Int_t basket);
             Int_t   *GetBasketBytes() const {return fBasketBytes;}
             Int_t   *GetBasketEntry() const {return fBasketEntry;}
-    virtual Seek_t   GetBasketSeek(Int_t basket) const;
+    virtual Long64_t GetBasketSeek(Int_t basket) const;
     TDirectory      *GetDirectory() const {return fDirectory;}
     virtual TFile   *GetFile(Int_t mode=0);
     const char      *GetFileName() const {return fFileName.Data();}
@@ -165,7 +165,7 @@ public:
     
     static  void     ResetCount() {fgCount = 0;}
 
-    ClassDef(TBranch,8)  //Branch descriptor
+    ClassDef(TBranch,9)  //Branch descriptor
 };
 
 #endif
diff --git a/tree/inc/TTree.h b/tree/inc/TTree.h
index 022b25fd120614733c2707c989f4897e4823df0a..0583146a67d361b8b8d8f87600c1e9e66f551326 100644
--- a/tree/inc/TTree.h
+++ b/tree/inc/TTree.h
@@ -1,4 +1,4 @@
-// @(#)root/tree:$Name:  $:$Id: TTree.h,v 1.55 2003/11/12 11:09:51 brun Exp $
+// @(#)root/tree:$Name:  $:$Id: TTree.h,v 1.56 2003/11/14 11:11:21 brun Exp $
 // Author: Rene Brun   12/01/96
 
 /*************************************************************************
@@ -119,7 +119,7 @@ protected:
     TVirtualTreePlayer *fPlayer;      //! Pointer to current Tree player
     TList        *fClones;            //! List of cloned trees which share our addresses
   static Int_t    fgBranchStyle;      //  Old/New branch style
-  static Int_t    fgMaxTreeSize;      //  Maximum size of a file containg a Tree
+  static Long64_t fgMaxTreeSize;      //  Maximum size of a file containg a Tree
 
 protected:
     void             AddClone(TTree*);
@@ -209,7 +209,7 @@ public:
     virtual Int_t     GetMakeClass() const {return fMakeClass;}
     virtual Int_t     GetMaxEntryLoop() const {return fMaxEntryLoop;}
     virtual Double_t  GetMaximum(const char *columname);
-    static  Int_t     GetMaxTreeSize();
+    static  Long64_t  GetMaxTreeSize();
     virtual Int_t     GetMaxVirtualSize() const {return fMaxVirtualSize;}
     virtual Double_t  GetMinimum(const char *columname);
     virtual Int_t     GetNbranches() {return fBranches.GetEntriesFast();}
@@ -275,7 +275,7 @@ public:
     virtual void      SetEventList(TEventList *list) {fEventList = list;}
     virtual void      SetMakeClass(Int_t make) {fMakeClass = make;}
     virtual void      SetMaxEntryLoop(Int_t maxev=1000000000) {fMaxEntryLoop = maxev;} // *MENU*
-    static  void      SetMaxTreeSize(Int_t maxsize=1900000000);
+    static  void      SetMaxTreeSize(Long64_t maxsize=1900000000);
     virtual void      SetMaxVirtualSize(Int_t size=0) {fMaxVirtualSize = size;} // *MENU*
     virtual void      SetName(const char *name); // *MENU*
     virtual void      SetNotify(TObject *obj) {fNotify = obj;}
diff --git a/tree/src/TBasket.cxx b/tree/src/TBasket.cxx
index 64f9d45033db1bb9e2008c6d601c6cce6c386ad2..258b287aed1e266f9cb18f009ddbe819c30ec289 100644
--- a/tree/src/TBasket.cxx
+++ b/tree/src/TBasket.cxx
@@ -1,4 +1,4 @@
-// @(#)root/tree:$Name:  $:$Id: TBasket.cxx,v 1.23 2003/11/22 14:51:19 brun Exp $
+// @(#)root/tree:$Name:  $:$Id: TBasket.cxx,v 1.24 2003/12/08 16:04:36 brun Exp $
 // Author: Rene Brun   19/01/96
 /*************************************************************************
  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
@@ -152,7 +152,7 @@ Int_t TBasket::GetEntryPointer(Int_t entry)
 }
 
 //_______________________________________________________________________
-Int_t TBasket::ReadBasketBuffers(Seek_t pos, Int_t len, TFile *file)
+Int_t TBasket::ReadBasketBuffers(Long64_t pos, Int_t len, TFile *file)
 {
 //*-*-*-*-*-*-*-*-*Read basket buffers in memory and cleanup*-*-*-*-*-*-*
 //*-*              =========================================
@@ -255,7 +255,7 @@ AfterBuffer:
 }
 
 //_______________________________________________________________________
-Int_t TBasket::ReadBasketBytes(Seek_t pos, TFile *file)
+Int_t TBasket::ReadBasketBytes(Long64_t pos, TFile *file)
 {
 //*-*-*-*-*-*-*-*-*Read basket buffers in memory and cleanup*-*-*-*-*-*-*
 //*-*              =========================================
diff --git a/tree/src/TBranch.cxx b/tree/src/TBranch.cxx
index dbf2ab1915896c883df3ad3958bf2dbae78bcb07..bfba5859b9a868edca84e210a368fe198e46dab3 100644
--- a/tree/src/TBranch.cxx
+++ b/tree/src/TBranch.cxx
@@ -1,4 +1,4 @@
-// @(#)root/tree:$Name:  $:$Id: TBranch.cxx,v 1.63 2003/12/08 15:55:24 brun Exp $
+// @(#)root/tree:$Name:  $:$Id: TBranch.cxx,v 1.64 2003/12/19 13:40:26 brun Exp $
 // Author: Rene Brun   12/01/96
 
 /*************************************************************************
@@ -166,7 +166,7 @@ TBranch::TBranch(const char *name, void *address, const char *leaflist, Int_t ba
    fBasketRAM      = new Int_t[kMaxRAM]; for (i=0;i<kMaxRAM;i++) fBasketRAM[i] = -1;
    fBasketEntry    = new Int_t[fMaxBaskets];
    fBasketBytes    = new Int_t[fMaxBaskets];
-   fBasketSeek     = new Seek_t[fMaxBaskets];
+   fBasketSeek     = new Long64_t[fMaxBaskets];
 
    for (i=0;i<fMaxBaskets;i++) {
       fBasketBytes[i] = 0;
@@ -505,12 +505,12 @@ Int_t TBranch::Fill()
          Int_t newsize = TMath::Max(10,Int_t(1.5*fMaxBaskets));
          fBasketEntry  = TStorage::ReAllocInt(fBasketEntry, newsize, fMaxBaskets);
          fBasketBytes  = TStorage::ReAllocInt(fBasketBytes, newsize, fMaxBaskets);
-#ifndef R__LARGEFILE64
-         fBasketSeek   = TStorage::ReAllocInt(fBasketSeek, newsize, fMaxBaskets);
-#else
-         fBasketSeek   = (Seek_t*)TStorage::ReAlloc(fBasketSeek,
-                             newsize*sizeof(Seek_t),fMaxBaskets*sizeof(Seek_t));
-#endif
+//#ifndef R__LARGEFILE64
+//         fBasketSeek   = TStorage::ReAllocInt(fBasketSeek, newsize, fMaxBaskets);
+//#else
+         fBasketSeek   = (Long64_t*)TStorage::ReAlloc(fBasketSeek,
+                             newsize*sizeof(Long64_t),fMaxBaskets*sizeof(Long64_t));
+//#endif
          fMaxBaskets   = newsize;
       }
 
@@ -677,7 +677,7 @@ TBasket *TBranch::GetBasket(Int_t basketnumber)
 }
 
 //______________________________________________________________________________
-Seek_t TBranch::GetBasketSeek(Int_t basketnumber) const
+Long64_t TBranch::GetBasketSeek(Int_t basketnumber) const
 {
 //*-*-*-*-*Return address of basket in the file*-*-*-*-*-*
 //*-*      ====================================
@@ -1069,7 +1069,7 @@ void TBranch::Refresh(TBranch *b)
    delete [] fBasketSeek;
    fBasketBytes = new Int_t[fMaxBaskets];
    fBasketEntry = new Int_t[fMaxBaskets];
-   fBasketSeek  = new Seek_t[fMaxBaskets];
+   fBasketSeek  = new Long64_t[fMaxBaskets];
    Int_t i;
    for (i=0;i<fMaxBaskets;i++) {
       fBasketBytes[i] = b->fBasketBytes[i];
@@ -1300,7 +1300,38 @@ void TBranch::Streamer(TBuffer &b)
       Version_t v = b.ReadVersion(&R__s, &R__c);
       if (v > 5) {
 
-         TBranch::Class()->ReadBuffer(b, this, v, R__s, R__c);
+         //TBranch::Class()->ReadBuffer(b, this, v, R__s, R__c);
+         TNamed::Streamer(b);
+         TAttFill::Streamer(b);
+         b >> fCompress;
+         b >> fBasketSize;
+         b >> fEntryOffsetLen;
+         b >> fWriteBasket;
+         b >> fEntryNumber;
+         b >> fOffset;
+         b >> fMaxBaskets;
+         b >> fSplitLevel;
+         b >> fEntries;
+         b >> fTotBytes;
+         b >> fZipBytes;
+         fBranches.Streamer(b);
+         fLeaves.Streamer(b);
+         fBaskets.Streamer(b);
+         fBasketEntry = new Int_t[fMaxBaskets];
+         fBasketBytes = new Int_t[fMaxBaskets];
+         fBasketSeek  = new Long64_t[fMaxBaskets];
+         Char_t isArray;
+         b >> isArray;
+         b.ReadFastArray(fBasketBytes,fMaxBaskets);
+         b >> isArray;
+         b.ReadFastArray(fBasketEntry,fMaxBaskets);
+         b >> isArray;
+         for (Int_t i=0;i<fMaxBaskets;i++) {
+            if (isArray == 2) b >> fBasketSeek[i];
+            else              {Int_t bsize; b >> bsize; fBasketSeek[i] = (Long64_t)bsize;};
+         }
+         fFileName.Streamer(b);
+         b.CheckByteCount(R__s, R__c, TBranch::IsA());
 
          fDirectory = gDirectory;
          if (fFileName.Length() != 0) fDirectory = 0;
@@ -1312,6 +1343,7 @@ void TBranch::Streamer(TBuffer &b)
          fNleaves = fLeaves.GetEntriesFast();
          if (!fSplitLevel && fBranches.GetEntriesFast()) fSplitLevel = 1;
          gROOT->SetReadingObject(kFALSE);
+         
          return;
       }
       //====process old versions before automatic schema evolution
@@ -1340,13 +1372,18 @@ void TBranch::Streamer(TBuffer &b)
          for (n=0;n<fMaxBaskets;n++) fBasketBytes[n] = 0;
       }
       if (v < 2) {
-         fBasketSeek = new Seek_t[fMaxBaskets];
+         fBasketSeek = new Long64_t[fMaxBaskets];
          for (n=0;n<fWriteBasket;n++) {
             fBasketSeek[n] = GetBasket(n)->GetSeekKey();
          }
       } else {
-         fBasketSeek = new Seek_t[fMaxBaskets];
-         n  = b.ReadArray(fBasketSeek);
+         fBasketSeek = new Long64_t[fMaxBaskets];
+         b >> n;
+         for (n=0;n<fMaxBaskets;n++) {
+            Int_t aseek;
+            b >> aseek;
+            fBasketSeek[n] = Long64_t(aseek);
+         }
       }
       fDirectory = gDirectory;
       if (v > 2) {
@@ -1360,7 +1397,37 @@ void TBranch::Streamer(TBuffer &b)
       //====end of old versions
 
    } else {
-      TBranch::Class()->WriteBuffer(b,this);
+      //TBranch::Class()->WriteBuffer(b,this);
+      UInt_t R__c = b.WriteVersion(TBranch::IsA(), kTRUE);
+      TNamed::Streamer(b);
+      TAttFill::Streamer(b);
+      b << fCompress;
+      b << fBasketSize;
+      b << fEntryOffsetLen;
+      b << fWriteBasket;
+      b << fEntryNumber;
+      b << fOffset;
+      b << fMaxBaskets;
+      b << fSplitLevel;
+      b << fEntries;
+      b << fTotBytes;
+      b << fZipBytes;
+      fBranches.Streamer(b);
+      fLeaves.Streamer(b);
+      fBaskets.Streamer(b);
+      b << (Char_t)1;
+      b.WriteFastArray(fBasketBytes,fMaxBaskets);
+      b << (Char_t)1;
+      b.WriteFastArray(fBasketEntry,fMaxBaskets);
+      Char_t isBigFile = 1;
+      if (fDirectory && fDirectory->GetFile()->GetEND() > TFile::kStartBigFile) isBigFile = 2;
+      b << isBigFile;
+      for (Int_t i=0;i<fMaxBaskets;i++) {
+         if (isBigFile == 2 ) b << fBasketSeek[i];
+         else                 b << (Int_t)fBasketSeek[i];
+      }
+      fFileName.Streamer(b);
+      b.SetByteCount(R__c, kTRUE);
    }
 }
 
@@ -1391,12 +1458,12 @@ void TBranch::WriteBasket(TBasket* basket)
       Int_t newsize = TMath::Max(10,Int_t(1.5*fMaxBaskets));
       fBasketEntry  = TStorage::ReAllocInt(fBasketEntry, newsize, fMaxBaskets);
       fBasketBytes  = TStorage::ReAllocInt(fBasketBytes, newsize, fMaxBaskets);
-#ifndef R__LARGEFILE64
-      fBasketSeek   = TStorage::ReAllocInt(fBasketSeek, newsize, fMaxBaskets);
-#else
-      fBasketSeek   = (Seek_t*)TStorage::ReAlloc(fBasketSeek,
-                          newsize*sizeof(Seek_t),fMaxBaskets*sizeof(Seek_t));
-#endif
+//#ifndef R__LARGEFILE64
+//      fBasketSeek   = TStorage::ReAllocInt(fBasketSeek, newsize, fMaxBaskets);
+//#else
+      fBasketSeek   = (Long64_t*)TStorage::ReAlloc(fBasketSeek,
+                          newsize*sizeof(Long64_t),fMaxBaskets*sizeof(Long64_t));
+//#endif
       fMaxBaskets   = newsize;
    }
 
diff --git a/tree/src/TBranchElement.cxx b/tree/src/TBranchElement.cxx
index e533928a910267fecc9177079759c16b674f8061..0cdbd4f55fb4608a8f223e99ff074800817ee935 100644
--- a/tree/src/TBranchElement.cxx
+++ b/tree/src/TBranchElement.cxx
@@ -1,4 +1,4 @@
-// @(#)root/tree:$Name:  $:$Id: TBranchElement.cxx,v 1.124 2003/12/25 17:55:20 brun Exp $
+// @(#)root/tree:$Name:  $:$Id: TBranchElement.cxx,v 1.125 2003/12/26 22:06:40 brun Exp $
 // Author: Rene Brun   14/01/2001
 
 /*************************************************************************
@@ -148,7 +148,7 @@ TBranchElement::TBranchElement(const char *bname, TStreamerInfo *sinfo, Int_t id
    fBasketSize     = basketsize;
    fBasketEntry    = new Int_t[fMaxBaskets];
    fBasketBytes    = new Int_t[fMaxBaskets];
-   fBasketSeek     = new Seek_t[fMaxBaskets];
+   fBasketSeek     = new Long64_t[fMaxBaskets];
 
    for (Int_t i=0;i<fMaxBaskets;i++) {
       fBasketBytes[i] = 0;
@@ -324,7 +324,7 @@ TBranchElement::TBranchElement(const char *bname, TClonesArray *clones, Int_t ba
    fBasketSize     = basketsize;
    fBasketEntry    = new Int_t[fMaxBaskets];
    fBasketBytes    = new Int_t[fMaxBaskets];
-   fBasketSeek     = new Seek_t[fMaxBaskets];
+   fBasketSeek     = new Long64_t[fMaxBaskets];
 
    for (Int_t i=0;i<fMaxBaskets;i++) {
       fBasketBytes[i] = 0;
diff --git a/tree/src/TBranchObject.cxx b/tree/src/TBranchObject.cxx
index 220f3a51bc5c57fb670acd2854450f465df2b54c..037d95644cc94798d96b7f3cce94deb6a94321d2 100644
--- a/tree/src/TBranchObject.cxx
+++ b/tree/src/TBranchObject.cxx
@@ -1,4 +1,4 @@
-// @(#)root/tree:$Name:  $:$Id: TBranchObject.cxx,v 1.25 2003/04/04 16:35:49 brun Exp $
+// @(#)root/tree:$Name:  $:$Id: TBranchObject.cxx,v 1.26 2003/12/08 15:55:24 brun Exp $
 // Author: Rene Brun   11/02/96
 
 /*************************************************************************
@@ -82,7 +82,7 @@ TBranchObject::TBranchObject(const char *name, const char *classname, void *addo
    fClassName      = classname;
    fBasketEntry    = new Int_t[fMaxBaskets];
    fBasketBytes    = new Int_t[fMaxBaskets];
-   fBasketSeek     = new Seek_t[fMaxBaskets];
+   fBasketSeek     = new Long64_t[fMaxBaskets];
    fOldObject      = 0;
 
    for (Int_t i=0;i<fMaxBaskets;i++) {
diff --git a/tree/src/TTree.cxx b/tree/src/TTree.cxx
index b2dc557269668812935856f3ac9077bbec0c3ba7..d402722afde58783f0a364364f5b1067c8d3a68c 100644
--- a/tree/src/TTree.cxx
+++ b/tree/src/TTree.cxx
@@ -1,4 +1,4 @@
-// @(#)root/tree:$Name:  $:$Id: TTree.cxx,v 1.172 2003/12/19 13:40:26 brun Exp $
+// @(#)root/tree:$Name:  $:$Id: TTree.cxx,v 1.173 2003/12/27 16:14:31 brun Exp $
 // Author: Rene Brun   12/01/96
 
 /*************************************************************************
@@ -300,8 +300,8 @@
 #include "TCut.h"
 #include "Api.h"
 
-Int_t TTree::fgBranchStyle = 1;  //use new TBranch style with TBranchElement
-Int_t TTree::fgMaxTreeSize = 1900000000;
+Int_t    TTree::fgBranchStyle = 1;  //use new TBranch style with TBranchElement
+Long64_t TTree::fgMaxTreeSize = 1900000000;
 
 TTree *gTree;
 const Int_t kMaxLen = 512;
@@ -2209,7 +2209,7 @@ Int_t TTree::Fill()
    //to the case where the Tree is in the top level directory.
    if (!fDirectory) return nbytes;
    TFile *file = fDirectory->GetFile();
-   if (file && file->GetEND() > (Double_t)fgMaxTreeSize) {
+   if (file && file->GetEND() > fgMaxTreeSize) {
       if (fDirectory == (TDirectory*)file) ChangeFile(file);
    }
 
@@ -2861,7 +2861,7 @@ Double_t TTree::GetMaximum(const char *columname)
 
 
 //______________________________________________________________________________
-Int_t TTree::GetMaxTreeSize()
+Long64_t TTree::GetMaxTreeSize()
 {
 // static function
 // return maximum size of a Tree file
@@ -3783,7 +3783,7 @@ void TTree::SetFileNumber(Int_t number)
 }
   
 //______________________________________________________________________________
-void TTree::SetMaxTreeSize(Int_t maxsize)
+void TTree::SetMaxTreeSize(Long64_t maxsize)
 {
 // static function
 // Set the maximum size of a Tree file.
diff --git a/treeplayer/inc/TFileDrawMap.h b/treeplayer/inc/TFileDrawMap.h
index 82d8b4cb0184d33738e5e62c4442ba85887c68ed..6d5706fecf8210670371a997a2aac0593e39c956 100644
--- a/treeplayer/inc/TFileDrawMap.h
+++ b/treeplayer/inc/TFileDrawMap.h
@@ -1,4 +1,4 @@
-// @(#)root/treeplayer:$Name:  $:$Id: TFileDrawMap.h,v 1.1 2003/01/17 17:48:56 brun Exp $
+// @(#)root/treeplayer:$Name:  $:$Id: TFileDrawMap.h,v 1.2 2003/01/19 21:18:36 brun Exp $
 // Author: Rene Brun   15/01/2003
 
 /*************************************************************************
@@ -41,9 +41,9 @@ protected:
     Int_t          fXsize;          //size in bytes of X axis
     Int_t          fYsize;          //size in K/Mbytes of Y axis
            
-    virtual void     DrawMarker(Int_t marker, Seek_t eseek);
+    virtual void     DrawMarker(Int_t marker, Long64_t eseek);
     virtual Bool_t   GetObjectInfoDir(TDirectory *dir, Int_t px, Int_t py, char *info) const;
-    virtual void     PaintBox(TBox &box, Seek_t bseek, Int_t nbytes);
+    virtual void     PaintBox(TBox &box, Long64_t bseek, Int_t nbytes);
     virtual void     PaintDir(TDirectory *dir, const char *keys);
     virtual TObject *GetObject(); 
        
diff --git a/treeplayer/src/TFileDrawMap.cxx b/treeplayer/src/TFileDrawMap.cxx
index 8df3d5eee266db356bb95b96a3c9a8a2df6fd427..b6ae8788295744e0dce2aa84d5ecd2f702e641a7 100644
--- a/treeplayer/src/TFileDrawMap.cxx
+++ b/treeplayer/src/TFileDrawMap.cxx
@@ -1,4 +1,4 @@
-// @(#)root/treeplayer:$Name:  $:$Id: TFileDrawMap.cxx,v 1.3 2003/01/19 21:47:50 brun Exp $
+// @(#)root/treeplayer:$Name:  $:$Id: TFileDrawMap.cxx,v 1.4 2003/01/20 12:57:30 brun Exp $
 // Author: Rene Brun   15/01/2003
 
 /*************************************************************************
@@ -244,7 +244,7 @@ Int_t TFileDrawMap::DistancetoPrimitive(Int_t px, Int_t py)
 }
 
 //______________________________________________________________________________
-void TFileDrawMap::DrawMarker(Int_t marker, Seek_t eseek)
+void TFileDrawMap::DrawMarker(Int_t marker, Long64_t eseek)
 {
 // Draw marker
    
@@ -381,9 +381,9 @@ Bool_t TFileDrawMap::GetObjectInfoDir(TDirectory *dir, Int_t px, Int_t py, char
    Double_t x = gPad->AbsPixeltoX(px);
    Double_t y = gPad->AbsPixeltoY(py);
    Int_t iy   = (Int_t)y;
-   Seek_t pbyte = (Seek_t)(fXsize*iy+x);
+   Long64_t pbyte = (Long64_t)(fXsize*iy+x);
    Int_t nbytes;
-   Seek_t bseek;
+   Long64_t bseek;
    TDirectory *dirsav = gDirectory;
    dir->cd();
    
@@ -463,7 +463,7 @@ Bool_t TFileDrawMap::GetObjectInfoDir(TDirectory *dir, Int_t px, Int_t py, char
          return kTRUE;            
       }
    }
-   sprintf(info,"(byte=%d)",pbyte);
+   sprintf(info,"(byte=%lld)",pbyte);
    dirsav->cd();
    return kFALSE;
 }
@@ -501,7 +501,7 @@ void TFileDrawMap::Paint(Option_t *)
 }
 
 //______________________________________________________________________________
-void TFileDrawMap::PaintBox(TBox &box, Seek_t bseek, Int_t nbytes)
+void TFileDrawMap::PaintBox(TBox &box, Long64_t bseek, Int_t nbytes)
 {
 // Paint the object at bseek with nbytes using the box object
 
@@ -543,7 +543,7 @@ void TFileDrawMap::PaintDir(TDirectory *dir, const char *keys)
    TRegexp re(keys,kTRUE);
    while ((key = (TKey*)next())) {
       Int_t nbytes = key->GetNbytes();
-      Seek_t bseek = key->GetSeekKey();
+      Long64_t bseek = key->GetSeekKey();
       TClass *cl = gROOT->GetClass(key->GetClassName());
       if (cl) {
          color = (Int_t)(cl->GetUniqueID()%20);
@@ -574,7 +574,7 @@ void TFileDrawMap::PaintDir(TDirectory *dir, const char *keys)
             box.SetFillColor(color);
             Int_t nbaskets = branch->GetMaxBaskets();
             for (Int_t i=0;i<nbaskets;i++) {
-               Seek_t bseek = branch->GetBasketSeek(i);
+               Long64_t bseek = branch->GetBasketSeek(i);
                if (!bseek) break;
                Int_t nbytes = branch->GetBasketBytes()[i];
                PaintBox(box,bseek,nbytes);
diff --git a/unix/inc/TUnixSystem.h b/unix/inc/TUnixSystem.h
index d5fcd65e2324494ef23fdefa154fb9c44922e213..5b4e58f2649c1cd54f02a98859c4740e1c304741 100644
--- a/unix/inc/TUnixSystem.h
+++ b/unix/inc/TUnixSystem.h
@@ -1,4 +1,4 @@
-// @(#)root/unix:$Name:  $:$Id: TUnixSystem.h,v 1.13 2003/09/23 22:06:16 rdm Exp $
+// @(#)root/unix:$Name:  $:$Id: TUnixSystem.h,v 1.14 2003/12/01 07:15:26 rdm Exp $
 // Author: Fons Rademakers   15/09/95
 
 /*************************************************************************
@@ -52,7 +52,7 @@ protected:
    static void         UnixResetSignal(ESignals sig);
    static void         UnixResetSignals();
    static void         UnixIgnoreSignal(ESignals sig, Bool_t ignore);
-   static int          UnixFilestat(const char *path, Long_t *id, Long_t *size,
+   static int          UnixFilestat(const char *path, Long_t *id, Long64_t *size,
                                     Long_t *flags, Long_t *modtime);
    static int          UnixFSstat(const char *path, Long_t *id, Long_t *bsize,
                                   Long_t *blocks, Long_t *bfree);
@@ -144,7 +144,7 @@ public:
    int               Link(const char *from, const char *to);
    int               Symlink(const char *from, const char *to);
    int               Unlink(const char *name);
-   int               GetPathInfo(const char *path, Long_t *id, Long_t *size,
+   int               GetPathInfo(const char *path, Long_t *id, Long64_t *size,
                                  Long_t *flags, Long_t *modtime);
    int               GetFsInfo(const char *path, Long_t *id, Long_t *bsize,
                                Long_t *blocks, Long_t *bfree);
diff --git a/unix/src/TUnixSystem.cxx b/unix/src/TUnixSystem.cxx
index 2bf729e9c0995c432b210796ab30d157c96a5602..5b41301e519ef99a829d2bea38501ee77b94928d 100644
--- a/unix/src/TUnixSystem.cxx
+++ b/unix/src/TUnixSystem.cxx
@@ -1,4 +1,4 @@
-// @(#)root/unix:$Name:  $:$Id: TUnixSystem.cxx,v 1.80 2003/12/11 16:35:19 rdm Exp $
+// @(#)root/unix:$Name:  $:$Id: TUnixSystem.cxx,v 1.81 2003/12/12 15:13:34 rdm Exp $
 // Author: Fons Rademakers   15/09/95
 
 /*************************************************************************
@@ -1032,7 +1032,7 @@ int TUnixSystem::Rename(const char *f, const char *t)
 }
 
 //______________________________________________________________________________
-int TUnixSystem::GetPathInfo(const char *path, Long_t *id, Long_t *size,
+int TUnixSystem::GetPathInfo(const char *path, Long_t *id, Long64_t *size,
                              Long_t *flags, Long_t *modtime)
 {
    // Get info about a file: id, size, flags, modification time.
@@ -1095,10 +1095,15 @@ int TUnixSystem::Unlink(const char *name)
    // Unlink, i.e. remove, a file or directory. Returns 0 when succesfull,
    // -1 in case of failure.
 
+#if defined(R__LINUX)
+   struct stat64 finfo;
+   if (stat64(name, &finfo) < 0)
+      return -1;
+#else
    struct stat finfo;
-
    if (stat(name, &finfo) < 0)
       return -1;
+#endif
 
    if (S_ISDIR(finfo.st_mode))
       return ::rmdir(name);
@@ -2931,7 +2936,7 @@ const char *TUnixSystem::UnixGetdirentry(void *dirp1)
 //---- files -------------------------------------------------------------------
 
 //______________________________________________________________________________
-int TUnixSystem::UnixFilestat(const char *path, Long_t *id, Long_t *size,
+int TUnixSystem::UnixFilestat(const char *path, Long_t *id, Long64_t *size,
                               Long_t *flags, Long_t *modtime)
 {
    // Get info about a file: id, size, flags, modification time.
@@ -2944,9 +2949,13 @@ int TUnixSystem::UnixFilestat(const char *path, Long_t *id, Long_t *size,
    // The function returns 0 in case of success and 1 if the file could
    // not be stat'ed.
 
+#if defined(R__LINUX)
+   struct stat64 statbuf;
+   if (path != 0 && stat64(path, &statbuf) >= 0) {
+#else
    struct stat statbuf;
-
    if (path != 0 && stat(path, &statbuf) >= 0) {
+#endif
       if (id)
 #if defined(R__KCC) && defined(R__LINUX)
          *id = (statbuf.st_dev.__val[0] << 24) + statbuf.st_ino;
diff --git a/winnt/inc/TWinNTSystem.h b/winnt/inc/TWinNTSystem.h
index 751f4f8f21107b69d1d71ad19535bd5c6b35cb93..6019f74ac37f369ce0b589061a1d0890e3f20a50 100644
--- a/winnt/inc/TWinNTSystem.h
+++ b/winnt/inc/TWinNTSystem.h
@@ -1,4 +1,4 @@
-// @(#)root/winnt:$Name:  $:$Id: TWinNTSystem.h,v 1.18 2003/06/25 05:49:28 brun Exp $
+// @(#)root/winnt:$Name:  $:$Id: TWinNTSystem.h,v 1.19 2003/09/23 22:06:16 rdm Exp $
 // Author: Fons Rademakers   15/09/95
 
 /*************************************************************************
@@ -192,7 +192,7 @@ public:
    int               Link(const char *from, const char *to);
    int               Unlink(const char *name);
    int               SetNonBlock(int fd);
-   int               GetPathInfo(const char *path, Long_t *id, Long_t *size,
+   int               GetPathInfo(const char *path, Long_t *id, Long64_t *size,
                                  Long_t *flags, Long_t *modtime);
    int               GetFsInfo(const char *path, Long_t *id, Long_t *bsize,
                                  Long_t *blocks, Long_t *bfree);
diff --git a/winnt/src/TWinNTSystem.cxx b/winnt/src/TWinNTSystem.cxx
index ffaa10ff4994c3dfd5c8ff96af04dd4797622764..4711528b56770dd17c34ae1fc031d4f9157f36d2 100644
--- a/winnt/src/TWinNTSystem.cxx
+++ b/winnt/src/TWinNTSystem.cxx
@@ -1,4 +1,4 @@
-// @(#)root/winnt:$Name:  $:$Id: TWinNTSystem.cxx,v 1.53 2003/12/09 16:50:50 brun Exp $
+// @(#)root/winnt:$Name:  $:$Id: TWinNTSystem.cxx,v 1.54 2003/12/13 16:01:27 brun Exp $
 // Author: Fons Rademakers   15/09/95
 
 /*************************************************************************
@@ -1339,7 +1339,7 @@ int TWinNTSystem::Rename(const char *f, const char *t)
 }
 
 //______________________________________________________________________________
-int TWinNTSystem::GetPathInfo(const char *path, Long_t *id, Long_t *size,
+int TWinNTSystem::GetPathInfo(const char *path, Long_t *id, Long64_t *size,
                               Long_t *flags, Long_t *modtime)
 {
    // Get info about a file: id, size, flags, modification time.