diff --git a/arraycontainer.go b/arraycontainer.go
index <HASH>..<HASH> 100644
--- a/arraycontainer.go
+++ b/arraycontainer.go
@@ -344,7 +344,7 @@ func (ac *arrayContainer) orArray(value2 *arrayContainer) container {
 func (ac *arrayContainer) lazyorArray(value2 *arrayContainer) container {
 	value1 := ac
 	maxPossibleCardinality := value1.getCardinality() + value2.getCardinality()
-	if maxPossibleCardinality > arrayDefaultMaxSize { // it could be a bitmap!^M
+	if maxPossibleCardinality > arrayLazyLowerBound { // it could be a bitmap!^M
 		bc := newBitmapContainer()
 		for k := 0; k < len(value2.content); k++ {
 			v := value2.content[k]
diff --git a/util.go b/util.go
index <HASH>..<HASH> 100644
--- a/util.go
+++ b/util.go
@@ -2,7 +2,8 @@ package roaring
 
 const (
 	arrayDefaultMaxSize = 4096 // containers with 4096 or fewer integers should be array containers.
-	maxCapacity         = 1 << 16
+        arrayLazyLowerBound = 1024
+        maxCapacity         = 1 << 16
 	serialCookie        = 12346
 )
Second part of first optimization from <URL>