diff --git a/avwx.cabal b/avwx.cabal
--- a/avwx.cabal
+++ b/avwx.cabal
@@ -1,5 +1,5 @@
 name:                avwx
-version:             0.3.0.1
+version:             0.3.0.2
 synopsis:            Parse aviation weather reports
 description:         Parse aviation weather reports, currently METARs and TAFs
 homepage:            https://www.hcesperer.org/posts/2016-09-20-avwx.html
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,7 @@
+# 0.3.0.2
+
+* Fix a TAF parsing bug
+
 # 0.3.0.0
 
 * Parse TAFs
diff --git a/src/Data/Aviation/WX.hs b/src/Data/Aviation/WX.hs
--- a/src/Data/Aviation/WX.hs
+++ b/src/Data/Aviation/WX.hs
@@ -765,7 +765,7 @@
     obfs <- perhaps obfuscationParser
     othr <- perhaps otherParser
     when ( (== 0) . Prelude.length . Prelude.filter not $
-        [ isNothing dsc, isNothing prc
+        [ isNothing prc
         , isNothing obfs, isNothing othr ] ) $ fail ""
     return $ Phenomenon intsy dsc prc obfs othr
 
@@ -1015,7 +1015,7 @@
                 [ "TEMPO" `callsfor` (TEMPO <$> parseFrom <*> parseTo <*> transitionParser)
                 , "BECMG" `callsfor` (BECMG <$> parseFrom <*> parseTo <*> transitionParser)
                 , "FM" `callsfor` (BECMG <$> parseFromFM <*> pure Nothing <*> transitionParser)
-                , "PROB" `callsfor`  (PROB  <$> twoDigits <*> (head <$> changesParser)) ]
+                , "PROB" `callsfor`  (PROB  <$> twoDigits <*> (spaces >> transitionTypeParser)) ]
         transitionParser = sepBy1 oneTransition (char ' ')
         parseFromFM = do
             fromDate <- dateParserSansZulu
