diff --git a/A.wav b/A.wav
Binary files a/A.wav and b/A.wav differ
diff --git a/B.wav b/B.wav
Binary files a/B.wav and b/B.wav differ
diff --git a/C.wav b/C.wav
Binary files a/C.wav and b/C.wav differ
diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -30,3 +30,7 @@
 ## 0.3.2.0 -- 2019-11-29
 
 * Third version revised C. Changed some sounds or sound representation: "с", "сь", "х", "ч", "ш".
+
+## 0.3.3.0 -- 2019-12-03
+
+* Third version revised D. Changed all non-silent sounds. Added support for '-'.
diff --git a/D.wav b/D.wav
Binary files a/D.wav and b/D.wav differ
diff --git a/E.wav b/E.wav
Binary files a/E.wav and b/E.wav differ
diff --git a/F.wav b/F.wav
Binary files a/F.wav and b/F.wav differ
diff --git a/G.wav b/G.wav
Binary files a/G.wav and b/G.wav differ
diff --git a/H.wav b/H.wav
Binary files a/H.wav and b/H.wav differ
diff --git a/I.wav b/I.wav
Binary files a/I.wav and b/I.wav differ
diff --git a/J.wav b/J.wav
Binary files a/J.wav and b/J.wav differ
diff --git a/K.wav b/K.wav
Binary files a/K.wav and b/K.wav differ
diff --git a/L.wav b/L.wav
Binary files a/L.wav and b/L.wav differ
diff --git a/M.wav b/M.wav
Binary files a/M.wav and b/M.wav differ
diff --git a/Melodics/Ukrainian.hs b/Melodics/Ukrainian.hs
--- a/Melodics/Ukrainian.hs
+++ b/Melodics/Ukrainian.hs
@@ -21,7 +21,7 @@
 import qualified Data.Vector as V
 import qualified Data.ByteString.Lazy as B
 import System.IO 
-import CaseBi
+import CaseBi (getBFst')
 import Data.List.InnToOut.Basic
 import Paths_mmsyn6ukr
 
@@ -71,7 +71,7 @@
 convertToProperUkrainian ys = toVector . correctA . createTuplesByAnalysis . filterUkr $ ys
 
 filterUkr :: String -> String 
-filterUkr xs = concatMap (\x -> if isUkrainian x then [toLower x] else if isSpace x || isControl x then [x] else []) xs
+filterUkr xs = concatMap (\x -> if isUkrainian x then [toLower x] else if isSpace x || isControl x || x == '-' then [x] else []) xs
 
 createTuplesByAnalysis :: String -> [(String, Triple)]
 createTuplesByAnalysis x@(y:ys) | canChange [y] == O = ("1", Z):createTuplesByAnalysis ys
@@ -80,7 +80,7 @@
 createTuplesByAnalysis _ = []
 
 canChange :: String -> Triple
-canChange ~(x:_) | isSpace x || isControl x = O
+canChange ~(x:_) | isSpace x || isControl x || x == '-' = O
                  | getBFst' (False, V.fromList $ zip ['\1075','\1076','\1079','\1078','\1082','\1087','\1089','\1090','\1092','\1093','\1094','\1095','\1096'] (repeat True)) x = T
                  | otherwise = Z
                     
@@ -318,7 +318,7 @@
 
 isUkrainian :: Char -> Bool
 isUkrainian y | (y >= '\1040' && y <= '\1065') || (y >= '\1070' && y <= '\1097') = True
-              | otherwise = getBFst' (False, V.fromList . map (\x -> (x, True)) $ "'\700\1028\1030\1031\1068\1100\1102\1103\1108\1110\1111\1168\1169\8217") y
+              | otherwise = getBFst' (False, V.fromList . map (\x -> (x, True)) $ "'-\700\1028\1030\1031\1068\1100\1102\1103\1108\1110\1111\1168\1169\8217") y
 
 nSymbols :: String -> Int
 nSymbols xs | null xs = 31416::Int
diff --git a/N.wav b/N.wav
Binary files a/N.wav and b/N.wav differ
diff --git a/O.wav b/O.wav
Binary files a/O.wav and b/O.wav differ
diff --git a/P.wav b/P.wav
Binary files a/P.wav and b/P.wav differ
diff --git a/Q.wav b/Q.wav
Binary files a/Q.wav and b/Q.wav differ
diff --git a/R.wav b/R.wav
Binary files a/R.wav and b/R.wav differ
diff --git a/S.wav b/S.wav
Binary files a/S.wav and b/S.wav differ
diff --git a/T.wav b/T.wav
Binary files a/T.wav and b/T.wav differ
diff --git a/U.wav b/U.wav
Binary files a/U.wav and b/U.wav differ
diff --git a/V.wav b/V.wav
Binary files a/V.wav and b/V.wav differ
diff --git a/W.wav b/W.wav
Binary files a/W.wav and b/W.wav differ
diff --git a/X.wav b/X.wav
Binary files a/X.wav and b/X.wav differ
diff --git a/Y.wav b/Y.wav
Binary files a/Y.wav and b/Y.wav differ
diff --git a/Z.wav b/Z.wav
Binary files a/Z.wav and b/Z.wav differ
diff --git a/a.wav b/a.wav
Binary files a/a.wav and b/a.wav differ
diff --git a/b.wav b/b.wav
Binary files a/b.wav and b/b.wav differ
diff --git a/c.wav b/c.wav
Binary files a/c.wav and b/c.wav differ
diff --git a/d.wav b/d.wav
Binary files a/d.wav and b/d.wav differ
diff --git a/e.wav b/e.wav
Binary files a/e.wav and b/e.wav differ
diff --git a/f.wav b/f.wav
Binary files a/f.wav and b/f.wav differ
diff --git a/mmsyn6ukr.cabal b/mmsyn6ukr.cabal
--- a/mmsyn6ukr.cabal
+++ b/mmsyn6ukr.cabal
@@ -2,9 +2,9 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                mmsyn6ukr
-version:             0.3.2.0
-synopsis:            Can be used as a musical instrument synthesizer or for Ukrainian language listening
-description:         A program that can be used as a musical instrument synthesizer or for Ukrainian speech synthesis especially for poets and writers
+version:             0.3.3.0
+synopsis:            A musical instrument synthesizer or a tool for Ukrainian language listening
+description:         A program can be used as a musical instrument synthesizer or for Ukrainian speech synthesis especially for poets and writers
 homepage:            https://hackage.haskell.org/package/mmsyn6ukr
 license:             MIT
 license-file:        LICENSE
