diff --git a/Test/Framework/TH/Prime/Parser.hs b/Test/Framework/TH/Prime/Parser.hs
--- a/Test/Framework/TH/Prime/Parser.hs
+++ b/Test/Framework/TH/Prime/Parser.hs
@@ -54,12 +54,23 @@
 parseTest :: FilePath -> IO (ParseResult Module)
 parseTest file = do
     raw <- readFile file
-    parseModuleWithMode opt . pack <$> go raw
+    parseModuleWithMode (opt raw) . pack <$> go raw
   where
     pack = unlines . tail . map snd
     go = cppIfdef "dummy" [] [] defaultBoolOptions
-    opt = defaultParseMode {
-        extensions = [TemplateHaskell]
+    exts raw =
+      case getTopPragmas raw of
+        ParseOk pragmas ->
+          [ toExtention name
+          | LanguagePragma _ names <- pragmas, name <- names]
+        ParseFailed _ _ ->
+          []
+      where
+        toExtention = read . toStr
+        toStr (Ident str) = str
+        toStr (Symbol str) = str
+    opt raw = defaultParseMode {
+        extensions = nub $ TemplateHaskell : exts raw
       -- to prevent "Ambiguous infix expression"
       , fixities = Nothing
       }
diff --git a/test-framework-th-prime.cabal b/test-framework-th-prime.cabal
--- a/test-framework-th-prime.cabal
+++ b/test-framework-th-prime.cabal
@@ -1,5 +1,5 @@
 Name:                   test-framework-th-prime
-Version:                0.0.4
+Version:                0.0.5
 Author:                 Kazu Yamamoto <kazu@iij.ad.jp>
 Maintainer:             Kazu Yamamoto <kazu@iij.ad.jp>
 License:                BSD3
