diff --git a/parsers.cabal b/parsers.cabal
--- a/parsers.cabal
+++ b/parsers.cabal
@@ -1,6 +1,6 @@
 name:          parsers
 category:      Text, Parsing
-version:       0.8.2
+version:       0.8.3
 license:       BSD3
 cabal-version: >= 1.10
 license-file:  LICENSE
diff --git a/src/Text/Parser/Expression.hs b/src/Text/Parser/Expression.hs
--- a/src/Text/Parser/Expression.hs
+++ b/src/Text/Parser/Expression.hs
@@ -112,12 +112,10 @@
               ambiguousLeft     = ambiguous "left" lassocOp
               ambiguousNon      = ambiguous "non" nassocOp
 
-              preTermP   =     try (do { pre <- prefixP; x <- term; return $ pre x })
-                           <|> term
-
-              termP      = do { x <- preTermP
+              termP      = do { pre <- prefixP
+                              ; x <- term
                               ; post <- postfixP
-                              ; return (post x)
+                              ; return (post (pre x))
                               }
 
               postfixP   = postfixOp <|> return id
