Index: oup/current/DataAccess/ConnectionManager.pas
===================================================================
--- oup/current/DataAccess/ConnectionManager.pas	(revision 246)
+++ oup/current/DataAccess/ConnectionManager.pas	(revision 247)
@@ -2,5 +2,5 @@
 interface
 
-uses TypeDefs, DataAccess, Access_OniArchive, Access_OUP_ADB;
+uses TypeDefs, DataAccess, Access_OniArchive, Access_OUP_ADB, Access_OniSplitArchive;
 
 type
@@ -155,4 +155,6 @@
   else if ext = '.DAT' then
     backend := DB_ONI
+  else if ext = '.ONI' then
+    backend := DB_ONISPLIT
   else
   begin
@@ -168,4 +170,6 @@
     DB_ADB:
       FConnections[i] := TAccess_OUP_ADB.Create(FileName, FLastID + 1, CreateMsg);
+    DB_ONISPLIT:
+      FConnections[i] := TAccess_OniSplitArchive.Create(FileName, FLastID + 1, CreateMsg);
   end;
 
@@ -179,5 +183,4 @@
   begin
     FConnections[i].Close;
-    FConnections[i].Free;
     FConnections[i] := nil;
     SetLength(FConnections, Length(FConnections) - 1);
Index: oup/current/Global/TypeDefs.pas
===================================================================
--- oup/current/Global/TypeDefs.pas	(revision 246)
+++ oup/current/Global/TypeDefs.pas	(revision 247)
@@ -8,5 +8,5 @@
   ENotImplemented = class(Exception);
 
-  TDataBackend = (DB_ONI, DB_ADB);
+  TDataBackend = (DB_ONI, DB_ADB, DB_ONISPLIT);
   TDataOS = (DOS_WIN, DOS_WINDEMO, DOS_MAC, DOS_MACBETA);
 
Index: oup/current/Main.pas
===================================================================
--- oup/current/Main.pas	(revision 246)
+++ oup/current/Main.pas	(revision 247)
@@ -218,5 +218,5 @@
         ShowMessage('Load OPF-File: ' + ParamStr(2));
       end
-      else if (strings.Strings[0] = 'oldb') or (strings.Strings[0] = 'dat') then
+      else if (strings.Strings[0] = 'oldb') or (strings.Strings[0] = 'dat') or (strings.Strings[0] = 'oni') then
       begin
         CreateConnection(strings.Strings[1]);
@@ -281,5 +281,5 @@
     ShowMessage('Load OPF-File: ' + ParamStr(2));
   end
-  else if (MidStr(ParamStr(1), 1, 4) = 'oldb') or (MidStr(ParamStr(1), 1, 3) = 'dat') then
+  else if (MidStr(ParamStr(1), 1, 4) = 'oldb') or (MidStr(ParamStr(1), 1, 3) = 'dat') or (MidStr(ParamStr(1), 1, 3) = 'oni') then
   begin
     CreateConnection(ParamStr(2));
@@ -520,5 +520,5 @@
 begin
   opend.InitialDir := AppSettings.DatPath;
-  opend.Filter     := 'Compatible level files|*.dat;*.oldb|Oni level (*.dat)|*.dat|OUP level database (*.oldb)|*.oldb|Any (*.*)|*';
+  opend.Filter     := 'Compatible level files|*.dat;*.oni;*.oldb|Oni level (*.dat)|*.dat|OniSplit Archive (*.oni)|*.oni|OUP level database (*.oldb)|*.oldb|Any (*.*)|*';
   if typedb then
     opend.FilterIndex := 3
Index: oup/current/OniUnPacker.dpr
===================================================================
--- oup/current/OniUnPacker.dpr	(revision 246)
+++ oup/current/OniUnPacker.dpr	(revision 247)
@@ -46,5 +46,6 @@
   _Extensions in 'FileClasses\_Extensions.pas',
   _MetaTypes in 'FileClasses\_MetaTypes.pas',
-  _TreeElement in 'FileClasses\_TreeElement.pas';
+  _TreeElement in 'FileClasses\_TreeElement.pas',
+  Access_OniSplitArchive in 'DataAccess\Access_OniSplitArchive.pas';
 
 {$R *.res}
