Index: oup/rewrite/DataAccess/Access_OUP_ADB.pas
===================================================================
--- oup/rewrite/DataAccess/Access_OUP_ADB.pas	(revision 101)
+++ oup/rewrite/DataAccess/Access_OUP_ADB.pas	(revision 105)
@@ -103,4 +103,5 @@
   FBackend := DB_ADB;
 
+  FConnectionID := ConnectionID;
   FChangeRights := [CR_EditDat, CR_EditRaw, CR_ResizeDat, CR_ResizeRaw];
 
Index: oup/rewrite/DataAccess/Access_OniArchive.pas
===================================================================
--- oup/rewrite/DataAccess/Access_OniArchive.pas	(revision 101)
+++ oup/rewrite/DataAccess/Access_OniArchive.pas	(revision 105)
@@ -43,5 +43,5 @@
     procedure UpdateRawFilePart(FileID, DatOffset, Offset, Size: Integer; Src: TStream); overload; override;
 
-    function AppendRawFile(LocSep: Boolean; Size: Integer; Src: TStream): Integer; overload; override;
+    function AppendRawFile(LocSep: Boolean; Src: TStream): Integer; overload; override;
   published
   end;
@@ -184,4 +184,5 @@
   Msg := SM_OK;
   FBackend := DB_ONI;
+  FConnectionID := ConnectionID;
   FChangeRights := [CR_EditDat, CR_EditRaw, CR_AppendRaw];
 end;
@@ -616,5 +617,5 @@
 end;
 
-function TAccess_OniArchive.AppendRawFile(LocSep: Boolean; Size: Integer; Src: TStream): Integer;
+function TAccess_OniArchive.AppendRawFile(LocSep: Boolean; Src: TStream): Integer;
 begin
   if not LocSep then
@@ -625,5 +626,5 @@
     Result := Fraw_file.Size;
     Fraw_file.Seek(0, soFromEnd);
-    Fraw_file.CopyFrom(Src, Size);
+    Fraw_file.CopyFrom(Src, Src.Size);
     if UnloadWhenUnused then
     begin
@@ -641,5 +642,5 @@
     Result := Fsep_file.Size;
     Fsep_file.Seek(0, soFromEnd);
-    Fsep_file.CopyFrom(Src, Size);
+    Fsep_file.CopyFrom(Src, Src.Size);
     if UnloadWhenUnused then
     begin
Index: oup/rewrite/DataAccess/DataAccess.pas
===================================================================
--- oup/rewrite/DataAccess/DataAccess.pas	(revision 101)
+++ oup/rewrite/DataAccess/DataAccess.pas	(revision 105)
@@ -42,5 +42,4 @@
     procedure LoadDatFilePart(FileID, Offset, Size: Integer; Target: Pointer); overload;
     procedure UpdateDatFilePart(FileID, Offset, Size: Integer; Src: TStream); overload; virtual; abstract;
-    procedure UpdateDatFilePart(FileID, Offset, Size: Integer; Src: TByteData); overload;
     procedure UpdateDatFilePart(FileID, Offset, Size: Integer; Src: Pointer); overload;
 
@@ -56,9 +55,8 @@
     procedure LoadRawFilePart(FileID, DatOffset, Offset, Size: Integer; Target: Pointer); overload;
     procedure UpdateRawFilePart(FileID, DatOffset, Offset, Size: Integer; Src: TStream); overload; virtual; abstract;
-    procedure UpdateRawFilePart(FileID, DatOffset, Offset, Size: Integer; Src: TByteData); overload;
     procedure UpdateRawFilePart(FileID, DatOffset, Offset, Size: Integer; Src: Pointer); overload;
 
-    function AppendRawFile(LocSep: Boolean; Size: Integer; Src: TStream): Integer; overload; virtual;
-    function AppendRawFile(LocSep: Boolean; Size: Integer; Src: TByteData): Integer; overload;
+    function AppendRawFile(LocSep: Boolean; Src: TStream): Integer; overload; virtual;
+    function AppendRawFile(LocSep: Boolean; Src: TByteData): Integer; overload;
     function AppendRawFile(LocSep: Boolean; Size: Integer; Src: Pointer): Integer; overload;
   published
@@ -173,18 +171,4 @@
 end;
 
-procedure TDataAccess.UpdateDatFilePart(FileID, Offset, Size: Integer; Src: TByteData);
-var
-  data: TStream;
-begin
-  if fileid < GetFileCount then
-  begin
-    data := TMemoryStream.Create;
-    data.Write(Src[0], Size);
-    data.Seek(0, soFromBeginning);
-    UpdateDatFilePart(FileID, offset, size, data);
-    data.Free;
-  end;
-end;
-
 procedure TDataAccess.UpdateDatFilePart(FileID, Offset, Size: Integer; Src: Pointer);
 var
@@ -260,12 +244,12 @@
 end;
 
-procedure TDataAccess.UpdateRawFilePart(FileID, DatOffset, Offset, Size: Integer; Src: TByteData);
-var
-  data: TStream;
-begin
-  if fileid < GetFileCount then
-  begin
-    data := TMemoryStream.Create;
-    data.Write(Src[0], Size);
+procedure TDataAccess.UpdateRawFilePart(FileID, DatOffset, Offset, Size: Integer; Src: Pointer);
+var
+  data: TStream;
+begin
+  if fileid < GetFileCount then
+  begin
+    data := TMemoryStream.Create;
+    data.Write(Src^, Size);
     data.Seek(0, soFromBeginning);
     UpdateRawFilePart(FileID, DatOffset, Offset, Size, data);
@@ -274,20 +258,6 @@
 end;
 
-procedure TDataAccess.UpdateRawFilePart(FileID, DatOffset, Offset, Size: Integer; Src: Pointer);
-var
-  data: TStream;
-begin
-  if fileid < GetFileCount then
-  begin
-    data := TMemoryStream.Create;
-    data.Write(Src^, Size);
-    data.Seek(0, soFromBeginning);
-    UpdateRawFilePart(FileID, DatOffset, Offset, Size, data);
-    data.Free;
-  end;
-end;
-
-
-function TDataAccess.AppendRawFile(LocSep: Boolean; Size: Integer; Src: TStream): Integer;
+
+function TDataAccess.AppendRawFile(LocSep: Boolean; Src: TStream): Integer;
 begin
   raise ENotImplemented.Create('ERROR: AppendRawFile not implemented here!!!');
@@ -295,11 +265,12 @@
 
 
-function TDataAccess.AppendRawFile(LocSep: Boolean; Size: Integer; Src: TByteData): Integer;
+function TDataAccess.AppendRawFile(LocSep: Boolean; Src: TByteData): Integer;
 var
   data: TStream;
 begin
   data := TMemoryStream.Create;
-  data.Write(Src[0], Size);
-  AppendRawFile(LocSep, Size, data);
+  data.Write(Src[0], Length(Src));
+  data.Seek(0, soFromBeginning);
+  AppendRawFile(LocSep, data);
   data.Free;
 end;
@@ -311,5 +282,6 @@
   data := TMemoryStream.Create;
   data.Write(Src^, Size);
-  AppendRawFile(LocSep, Size, data);
+  data.Seek(0, soFromBeginning);
+  AppendRawFile(LocSep, data);
   data.Free;
 end;
