diff --git a/pkg/items/pagination.go b/pkg/items/pagination.go
index c8c4bb16d2da0d2d10e3d98422aaf345ffbf7c21..73a5ae9ac8e3431e332b2c1de9b56c66c78fc503 100644
--- a/pkg/items/pagination.go
+++ b/pkg/items/pagination.go
@@ -27,33 +27,26 @@ func (b *BatchProcessor) getBatch(ctx context.Context) ([]*Item, bool, error) {
 	var total int
 
 	if b.FindPublishedOptions != nil {
+		opts := *b.FindPublishedOptions
+		opts.FindOptions = *options.New(b.processed, b.limit, b.sort...)
 		res, total, err = b.Items.FindPublished(
 			ctx,
 			b.SpaceID,
 			b.EnvID,
 			b.CollectionID,
 			b.Filter,
-			&FindPublishedOptions{
-				Regular:     b.FindPublishedOptions.Regular,
-				Hidden:      b.FindPublishedOptions.Hidden,
-				Templates:   b.FindPublishedOptions.Templates,
-				FindOptions: *options.New(b.processed, b.limit, b.sort...),
-			},
+			&opts,
 		)
 	} else {
+		opts := *b.FindOptions
+		opts.FindOptions = *options.New(b.processed, b.limit, b.sort...)
 		res, total, err = b.Items.Find(
 			ctx,
 			b.SpaceID,
 			b.EnvID,
 			b.CollectionID,
 			b.Filter,
-			&FindOptions{
-				Deleted:     b.FindOptions.Deleted,
-				Regular:     b.FindOptions.Regular,
-				Hidden:      b.FindOptions.Hidden,
-				Templates:   b.FindOptions.Templates,
-				FindOptions: *options.New(b.processed, b.limit, b.sort...),
-			},
+			&opts,
 		)
 	}
 
diff --git a/pkg/items/pagination_test.go b/pkg/items/pagination_test.go
index 008b17795cc1c57d4e2dcf6bb3507bee8b3f1646..23d484b83e3e21ec3ee7b5f93477ea9d9a9b7cee 100644
--- a/pkg/items/pagination_test.go
+++ b/pkg/items/pagination_test.go
@@ -5,6 +5,7 @@ import (
 	"testing"
 
 	"git.perx.ru/perxis/perxis-go/pkg/environments"
+	"git.perx.ru/perxis/perxis-go/pkg/errors"
 	"git.perx.ru/perxis/perxis-go/pkg/options"
 	"github.com/stretchr/testify/assert"
 	"github.com/stretchr/testify/require"
@@ -58,4 +59,39 @@ func TestBatchProcessor(t *testing.T) {
 		require.NoError(t, err)
 		assert.Equal(t, 1000/25, counter)
 	})
+
+	t.Run("With FindOptions2", func(t *testing.T) {
+
+		f := &FindOptions{
+			Deleted:         true,
+			Hidden:          true,
+			Regular:         true,
+			Templates:       true,
+			TranslationsIDs: []string{"*"},
+			LocaleID:        "en",
+		}
+
+		itemssvc := &Stub{
+			FindResult: func(req StubFindRequest) StubFindResult {
+				fo := req.Options[0]
+				if !assert.Equal(t, f, fo) {
+					return StubFindResult{Items: nil, Total: 0, Error: errors.New("FindOptions not equal")}
+				}
+				return StubFindResult{Items: make([]*Item, fo.Limit), Total: 25, Error: nil}
+			},
+		}
+
+		f.FindOptions = *options.New(0, 25)
+		b := &BatchProcessor{
+			Items:        itemssvc,
+			SpaceID:      "sp",
+			EnvID:        environments.DefaultEnvironment,
+			CollectionID: "col",
+			FindOptions:  f,
+		}
+
+		var counter int
+		_, err := b.Do(context.Background(), func(batch []*Item) error { counter++; return nil })
+		require.NoError(t, err)
+	})
 }