diff --git a/django/core/management.py b/django/core/management.py
index 06c7f3ab1b..684020f9d1 100644
--- a/django/core/management.py
+++ b/django/core/management.py
@@ -334,8 +334,9 @@ def get_sql_initial_data_for_model(model):
     # Some backends can't execute more than one SQL statement at a time,
     # so split into separate statements.
     sql_expr = re.compile(
-        r"""(           # each statement is...
-        (?:             # one or more chunks of ...
+        r"""(           # each statement ...
+        [^\r\n;]        # starts with something other than a line ending or ';'
+        (?:             # then has one or more chunks of ...
             (?:[^;'"]+) # not the end of a statement or start of a quote
           | (?:'[^']*') # something in single quotes
           | (?:"[^"]*") # something in double quotes
diff --git a/tests/regressiontests/initial_sql_regress/__init__.py b/tests/regressiontests/initial_sql_regress/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/regressiontests/initial_sql_regress/models.py b/tests/regressiontests/initial_sql_regress/models.py
new file mode 100644
index 0000000000..c4cf12bdf7
--- /dev/null
+++ b/tests/regressiontests/initial_sql_regress/models.py
@@ -0,0 +1,13 @@
+"""
+Regression tests for initial SQL insertion.
+"""
+
+from django.db import models
+
+class Simple(models.Model):
+    name = models.CharField(maxlength = 50)
+
+API_TESTS = ""
+
+# NOTE: The format of the included SQL file for this test suite is important.
+# It must end with a trailing newline in order to test the fix for #2161.
diff --git a/tests/regressiontests/initial_sql_regress/sql/simple.sql b/tests/regressiontests/initial_sql_regress/sql/simple.sql
new file mode 100644
index 0000000000..ac60c0c3d6
--- /dev/null
+++ b/tests/regressiontests/initial_sql_regress/sql/simple.sql
@@ -0,0 +1,5 @@
+INSERT INTO initial_sql_regress_simple (name) VALUES ('John');
+INSERT INTO initial_sql_regress_simple (name) VALUES ('Paul');
+INSERT INTO initial_sql_regress_simple (name) VALUES ('Ringo');
+INSERT INTO initial_sql_regress_simple (name) VALUES ('George');
+
diff --git a/tests/runtests.py b/tests/runtests.py
index bb0d15db8c..a43985175e 100755
--- a/tests/runtests.py
+++ b/tests/runtests.py
@@ -34,8 +34,13 @@ ALWAYS_INSTALLED_APPS = [
 ]
 
 def get_test_models():
-    return [(MODEL_TESTS_DIR_NAME, f) for f in os.listdir(MODEL_TEST_DIR) if not f.startswith('__init__') and not f.startswith('.')] +\
-        [(REGRESSION_TESTS_DIR_NAME, f) for f in os.listdir(REGRESSION_TEST_DIR) if not f.startswith('__init__') and not f.startswith('.')]
+    models = []
+    for loc in MODEL_TESTS_DIR_NAME, REGRESSION_TESTS_DIR_NAME:
+        for f in os.listdir(loc):
+            if f.startswith('__init__') or f.startswith('.') or f.startswith('sql'):
+                continue
+            models.append((loc, f))
+    return models
 
 class DjangoDoctestRunner(doctest.DocTestRunner):
     def __init__(self, verbosity_level, *args, **kwargs):