diff --git a/migrate/tests/versioning/test_script.py b/migrate/tests/versioning/test_script.py
index 954bc0d..20e6af0 100644
--- a/migrate/tests/versioning/test_script.py
+++ b/migrate/tests/versioning/test_script.py
@@ -281,6 +281,16 @@ class TestSqlScript(fixture.Pathed, fixture.DB):
         for script_pattern in (
             "BEGIN TRANSACTION; %s; COMMIT;",
             "BEGIN; %s; END TRANSACTION;",
+            "/* comment */BEGIN TRANSACTION; %s; /* comment */COMMIT;",
+            "/* comment */ BEGIN TRANSACTION; %s; /* comment */ COMMIT;",
+            """
+-- comment
+BEGIN TRANSACTION;
+
+%s;
+
+-- comment
+COMMIT;""",
         ):
 
             test_statement = ("CREATE TABLE TEST1 (field1 int); "
diff --git a/migrate/versioning/script/sql.py b/migrate/versioning/script/sql.py
index 4b0536d..862bc9f 100644
--- a/migrate/versioning/script/sql.py
+++ b/migrate/versioning/script/sql.py
@@ -54,6 +54,7 @@ class SqlScript(base.BaseScript):
                 # not all drivers reliably handle multistatement queries or
                 # commands passed to .execute(), so split them and execute one
                 # by one
+                text = sqlparse.format(text, strip_comments=True, strip_whitespace=True)
                 for statement in sqlparse.split(text):
                     if statement:
                         if re.match(ignored_regex, statement):