diff --git a/django/db/models/query.py b/django/db/models/query.py
index ff5289c..73d839b 100644
--- a/django/db/models/query.py
+++ b/django/db/models/query.py
@@ -358,8 +358,6 @@ class QuerySet(object):
         Returns a tuple of (object, created), where created is a boolean
         specifying whether an object was created.
         """
-        assert kwargs, \
-                'get_or_create() must be passed at least one keyword argument'
         defaults = kwargs.pop('defaults', {})
         lookup = kwargs.copy()
         for f in self.model._meta.fields:
diff --git a/tests/modeltests/get_or_create/models.py b/tests/modeltests/get_or_create/models.py
index 14f55f8..403b6a9 100644
--- a/tests/modeltests/get_or_create/models.py
+++ b/tests/modeltests/get_or_create/models.py
@@ -16,6 +16,9 @@ class Person(models.Model):
     def __unicode__(self):
         return u'%s %s' % (self.first_name, self.last_name)
 
+class DefaultPerson(models.Model):
+    first_name = models.CharField(max_length=100, default="Anonymous")
+
 class ManualPrimaryKeyTest(models.Model):
     id = models.IntegerField(primary_key=True)
     data = models.CharField(max_length=100)
diff --git a/tests/modeltests/get_or_create/tests.py b/tests/modeltests/get_or_create/tests.py
index 3323c88..c667801 100644
--- a/tests/modeltests/get_or_create/tests.py
+++ b/tests/modeltests/get_or_create/tests.py
@@ -3,7 +3,7 @@ from datetime import date
 from django.db import IntegrityError
 from django.test import TestCase
 
-from models import Person, ManualPrimaryKeyTest
+from models import Person, DefaultPerson, ManualPrimaryKeyTest
 
 
 class GetOrCreateTests(TestCase):
@@ -50,3 +50,11 @@ class GetOrCreateTests(TestCase):
             ManualPrimaryKeyTest.objects.get_or_create, id=1, data="Different"
         )
         self.assertEqual(ManualPrimaryKeyTest.objects.get(id=1).data, "Original")
+
+    def test_get_or_create_empty(self):
+        # If all the attributes on a model have defaults, we shouldn't
+        # need to pass any arguments.
+        try:
+            DefaultPerson.objects.get_or_create()
+        except AssertionError:
+            self.assertTrue(False)
