diff --git a/loopy/frontend/fortran/__init__.py b/loopy/frontend/fortran/__init__.py
index bd798966db24851f834405fa3d849e4c20f18f94..8ce7a75e7bcd8233a0b843a5f7645a02b2fc6635 100644
--- a/loopy/frontend/fortran/__init__.py
+++ b/loopy/frontend/fortran/__init__.py
@@ -219,6 +219,10 @@ def parse_fortran(source, filename="<floopy code>", free_form=True, strict=True)
     tree = api.parse(source, isfree=free_form, isstrict=strict,
             analyze=False, ignore_comments=False)
 
+    if tree is None:
+        raise LoopyError("Fortran parser was unhappy with source code "
+                "and returned invalid data (Sorry!)")
+
     from loopy.frontend.fortran.translator import F2LoopyTranslator
     f2loopy = F2LoopyTranslator(filename)
     f2loopy(tree)