Index: oup/current/FileClasses/TXMP.pas
===================================================================
--- oup/current/FileClasses/TXMP.pas	(revision 209)
+++ oup/current/FileClasses/TXMP.pas	(revision 210)
@@ -111,8 +111,8 @@
   SetLength(FDatLinks, 2);
   FDatLinks[0].SrcOffset := $94;
-  FDatLinks[0].DestID := GetDatLinkValue(FFile, $94);
+  FDatLinks[0].DestID := GetDatLinkValue(FFileStream, $94);
   FDatLinks[0].PosDestExts := '*';
   FDatLinks[1].SrcOffset := $98;
-  FDatLinks[1].DestID := GetDatLinkValue(FFile, $98);
+  FDatLinks[1].DestID := GetDatLinkValue(FFileStream, $98);
   FDatLinks[1].PosDestExts := 'TXMP';
 end;
Index: oup/current/FileClasses/_FileTypes.pas
===================================================================
--- oup/current/FileClasses/_FileTypes.pas	(revision 209)
+++ oup/current/FileClasses/_FileTypes.pas	(revision 210)
@@ -13,5 +13,7 @@
       FFileID: Integer;
       FFileName: String;
-      FFile: TMemoryStream;
+      FFileExt: String;
+      FFileSize: Integer;
+      FFileStream: TMemoryStream;
 
       FDatLinks: TDatLinkList;
@@ -33,7 +35,9 @@
       procedure Free;
 
-      property FileStream: TMemoryStream read FFile;
+      property FileStream: TMemoryStream read FFileStream;
       property FileID: Integer read FFileID;
       property FileName: String read FFileName;
+      property FileExt: String read FFileExt;
+      property FileSize: Integer read FFileSize;
       property ConnectionID: Integer read FConnectionID;
 
@@ -66,11 +70,15 @@
 var
   i: Integer;
+  fileinfo: TFileInfo;
 begin
   FConnectionID := ConnectionID;
   FFileID := FileID;
-  FFileName := ConManager.Connection[ConnectionID].GetFileInfo(FileID).Name;
+  fileinfo := ConManager.Connection[ConnectionID].GetFileInfo(FileID);
+  FFileName := fileinfo.Name;
+  FFileExt := fileinfo.Extension;
+  FFileSize := fileinfo.Size;
 
-  FFile := TMemoryStream.Create;
-  ConManager.Connection[ConnectionID].LoadDatFile(FileID, TStream(FFile));
+  FFileStream := TMemoryStream.Create;
+  ConManager.Connection[ConnectionID].LoadDatFile(FileID, TStream(FFileStream));
 
   InitDatLinks();
@@ -78,6 +86,6 @@
   InitRawList();
 
-  FFile.Free;
-  FFile := nil;
+  FFileStream.Free;
+  FFileStream := nil;
 end;
 
