diff --git a/cmd/downloader/downloader/downloader.go b/cmd/downloader/downloader/downloader.go
index 64c9e8958c3d76bf73d1b4ee991edd98ee6d8034..7a3b7af56d35f641934c62b0c2b628ca7844725d 100644
--- a/cmd/downloader/downloader/downloader.go
+++ b/cmd/downloader/downloader/downloader.go
@@ -14,6 +14,7 @@ import (
 	"github.com/ledgerwatch/erigon-lib/kv"
 	"github.com/ledgerwatch/erigon-lib/kv/mdbx"
 	"github.com/ledgerwatch/log/v3"
+	mdbx2 "github.com/torquem-ch/mdbx-go/mdbx"
 )
 
 const ASSERT = false
@@ -24,7 +25,14 @@ type Protocols struct {
 }
 
 func New(cfg *torrent.ClientConfig, snapshotDir *dir.Rw) (*Protocols, error) {
-	db := mdbx.MustOpen(filepath.Join(snapshotDir.Path, "db"))
+	db, err := mdbx.NewMDBX(log.New()).
+		Flags(func(f uint) uint { return f | mdbx2.WriteMap | mdbx2.SafeNoSync }).
+		SyncPeriod(15 * time.Second).
+		Path(filepath.Join(snapshotDir.Path, "db")).
+		Open()
+	if err != nil {
+		return nil, err
+	}
 
 	peerID, err := readPeerID(db)
 	if err != nil {
diff --git a/cmd/integration/commands/stages.go b/cmd/integration/commands/stages.go
index 1fa566bc4b4ae57839270c6e1da466c9958fe74a..960cc39140f414d5e5748be8c06d9c3022a160ce 100644
--- a/cmd/integration/commands/stages.go
+++ b/cmd/integration/commands/stages.go
@@ -491,7 +491,7 @@ func stageHeaders(db kv.RwDB, ctx context.Context) error {
 
 func stageBodies(db kv.RwDB, ctx context.Context) error {
 	_, _, chainConfig, _, sync, _, _ := newSync(ctx, db, nil)
-	return db.Update(ctx, func(tx kv.RwTx) error {
+	if err := db.Update(ctx, func(tx kv.RwTx) error {
 		s := stage(sync, tx, nil, stages.Bodies)
 
 		if unwind > 0 {
@@ -499,7 +499,7 @@ func stageBodies(db kv.RwDB, ctx context.Context) error {
 				return fmt.Errorf("cannot unwind past 0")
 			}
 
-			u := sync.NewUnwindState(stages.Senders, s.BlockNumber-unwind, s.BlockNumber)
+			u := sync.NewUnwindState(stages.Bodies, s.BlockNumber-unwind, s.BlockNumber)
 			if err := stagedsync.UnwindBodiesStage(u, tx, stagedsync.StageBodiesCfg(db, nil, nil, nil, nil, 0, *chainConfig, 0, allSnapshots(chainConfig), getBlockReader(chainConfig)), ctx); err != nil {
 				return err
 			}
@@ -513,7 +513,10 @@ func stageBodies(db kv.RwDB, ctx context.Context) error {
 		}
 		log.Info("This command only works with --unwind option")
 		return nil
-	})
+	}); err != nil {
+		return err
+	}
+	return nil
 }
 
 func stageSenders(db kv.RwDB, ctx context.Context) error {