diff --git a/tests/postgres_tests/migrations/0002_create_test_models.py b/tests/postgres_tests/migrations/0002_create_test_models.py
index 106818a..21c060d 100644
--- a/tests/postgres_tests/migrations/0002_create_test_models.py
+++ b/tests/postgres_tests/migrations/0002_create_test_models.py
@@ -148,6 +148,18 @@ class Migration(migrations.Migration):
             },
             bases=(models.Model,),
         ),
+        migrations.CreateModel(
+            name='IntegerRangesArrayModel',
+            fields=[
+                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+                ('int_ranges', ArrayField(IntegerRangeField(), null=True, blank=True)),
+                ('bigint_ranges', ArrayField(BigIntegerRangeField(), null=True, blank=True)),
+            ],
+            options={
+                'required_db_vendor': 'postgresql',
+            },
+            bases=(models.Model,),
+        ),
     ]
 
     def apply(self, project_state, schema_editor, collect_sql=False):
diff --git a/tests/postgres_tests/models.py b/tests/postgres_tests/models.py
index aafd529..36c52bf 100644
--- a/tests/postgres_tests/models.py
+++ b/tests/postgres_tests/models.py
@@ -52,7 +52,7 @@ class TextFieldModel(models.Model):
     field = models.TextField()
 
 
-# Only create this model for databases which support it
+# Only create these models for databases which support it
 if connection.vendor == 'postgresql' and connection.pg_version >= 90200:
     class RangesModel(PostgreSQLModel):
         ints = IntegerRangeField(blank=True, null=True)
@@ -60,11 +60,18 @@ if connection.vendor == 'postgresql' and connection.pg_version >= 90200:
         floats = FloatRangeField(blank=True, null=True)
         timestamps = DateTimeRangeField(blank=True, null=True)
         dates = DateRangeField(blank=True, null=True)
+
+    class IntegerRangesArrayModel(PostgreSQLModel):
+        int_ranges = ArrayField(IntegerRangeField(), blank=True, null=True)
+        bigint_ranges = ArrayField(BigIntegerRangeField(), blank=True, null=True)
 else:
-    # create an object with this name so we don't have failing imports
+    # create objects with these names so we don't have failing imports
     class RangesModel(object):
         pass
 
+    class IntegerRangesArrayModel(object):
+        pass
+
 
 class ArrayFieldSubclass(ArrayField):
     def __init__(self, *args, **kwargs):
diff --git a/tests/postgres_tests/test_array.py b/tests/postgres_tests/test_array.py
index 895c910..c75190b 100644
--- a/tests/postgres_tests/test_array.py
+++ b/tests/postgres_tests/test_array.py
@@ -13,10 +13,11 @@ from django.utils import timezone
 from . import PostgresSQLTestCase
 from .models import (
     ArrayFieldSubclass, CharArrayModel, DateTimeArrayModel, IntegerArrayModel,
-    NestedIntegerArrayModel, NullableIntegerArrayModel, OtherTypesArrayModel,
+    NestedIntegerArrayModel, NullableIntegerArrayModel, OtherTypesArrayModel, IntegerRangesArrayModel
 )
 
 try:
+    from psycopg2.extras import NumericRange
     from django.contrib.postgres.fields import ArrayField
     from django.contrib.postgres.forms import SimpleArrayField, SplitArrayField
 except ImportError:
@@ -97,6 +98,26 @@ class TestSaveLoad(PostgresSQLTestCase):
         self.assertEqual(instance.uuids, loaded.uuids)
         self.assertEqual(instance.decimals, loaded.decimals)
 
+    def test_integer_ranges_passed_as_tuples(self):
+        instance = IntegerRangesArrayModel(
+            int_ranges=[(10, 20), (30, 40), ],
+            bigint_ranges=[(7000000000, 10000000000), (50000000000, 70000000000)]
+        )
+        instance.save()
+        loaded = IntegerRangesArrayModel.objects.get()
+        self.assertEqual(instance.int_ranges, loaded.int_ranges)
+        self.assertEqual(instance.bigint_ranges, loaded.bigint_ranges)
+
+    def test_integer_ranges_passed_as_numericrange_instances(self):
+        instance = IntegerRangesArrayModel(
+            int_ranges=[NumericRange(10, 20), NumericRange(30, 40), ],
+            bigint_ranges=[NumericRange(7000000000, 10000000000), NumericRange(50000000000, 70000000000)]
+        )
+        instance.save()
+        loaded = IntegerRangesArrayModel.objects.get()
+        self.assertEqual(instance.int_ranges, loaded.int_ranges)
+        self.assertEqual(instance.bigint_ranges, loaded.bigint_ranges)
+
 
 class TestQuerying(PostgresSQLTestCase):
 
