Index: /oup/current/Helper/LevelDB.pas
===================================================================
--- /oup/current/Helper/LevelDB.pas	(revision 142)
+++ /oup/current/Helper/LevelDB.pas	(revision 143)
@@ -45,4 +45,7 @@
 
 procedure TForm_LevelDB.CreateLevel(Source, Target: String);
+const
+  EmptyBytes: Array[0..31] of Byte = (
+      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 );
 var
   DatHeader:        THeader;
@@ -336,7 +339,11 @@
               RawLinks[i].RawAddr := Stream_Sep.Size;
               Stream_sep.CopyFrom(RawFileStream, RawFileStream.Size);
+              if (Stream_Sep.Size mod 32) > 0 then
+                Stream_Sep.Write(EmptyBytes[0], 32 - (Stream_Sep.Size mod 32));
             end else begin
               RawLinks[i].RawAddr := Stream_Raw.Size;
               Stream_Raw.CopyFrom(RawFileStream, RawFileStream.Size);
+              if (Stream_Raw.Size mod 32) > 0 then
+                Stream_Raw.Write(EmptyBytes[0], 32 - (Stream_Raw.Size mod 32));
             end;
           end else
@@ -348,4 +355,6 @@
       DatFileStream.Seek(0, soFromBeginning);
       Stream_Body.CopyFrom(DatFileStream, DatFileStream.Size);
+      if (Stream_Body.Size mod 32) > 0 then
+        Stream_Body.Write(EmptyBytes[0], 32 - (Stream_Body.Size mod 32));
     end
     else
@@ -378,4 +387,7 @@
     Stream_Dat.Write(ExtensionsHeader[i], SizeOf(ExtensionsHeader[i]));
 
+  if (Stream_Dat.Size mod 32) > 0 then
+    Stream_Dat.Write(EmptyBytes[0], 32 - (Stream_Dat.Size mod 32));
+
   DatHeader.DataSize  := Stream_Body.Size;
   DatHeader.NamesSize := Stream_Names.Size;
@@ -384,4 +396,8 @@
   Stream_Body.Seek(0, soFromBeginning);
   Stream_Dat.CopyFrom(Stream_Body, Stream_Body.Size);
+
+  if (Stream_Dat.Size mod 32) > 0 then
+    Stream_Dat.Write(EmptyBytes[0], 32 - (Stream_Dat.Size mod 32));
+
   DatHeader.NamesAddr := Stream_Dat.Size;
   Stream_Names.Seek(0, soFromBeginning);
