diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -127,3 +127,8 @@
 * Eigth version. Added a new module SoXBasics1 where all the functions (contrary to the SoXBasics module) try to replace
 the initial file with the resulting one. Changed the lower bound for SoX "sinc" effect. Added help messages and version information
 being obtained in the command line.
+
+## 0.9.0.0 -- 2020-01-24
+
+* Ninth version. Changed the behaviour in case of giving information to the user. Changed killing the main thread to raising a special
+exception with 'catchEnd' function. The program now becomes also a dependency for mmsyn7h package.
diff --git a/Main.hs b/Main.hs
--- a/Main.hs
+++ b/Main.hs
@@ -14,7 +14,7 @@
 
 module Main where
 
-import Control.Concurrent (myThreadId,killThread)
+import Control.Concurrent (myThreadId)
 import Processing_mmsyn7ukr
 import System.Environment (getArgs)
 
@@ -35,9 +35,9 @@
        putStr "list-of-produced-sound-representations (if any) -- a list of sound representations, which the program will try to produce while being executed. "
        putStrLn "The default one (if not specified) is a full range of needed sound representations. "
        myThread <- myThreadId
-       killThread myThread
+       catchEnd myThread
     "-v" -> do
        putStrLn "mmsyn7ukr version: 0.8.0.0"
        myThread <- myThreadId
-       killThread myThread
+       catchEnd myThread
     _    -> main7ukr args
diff --git a/Processing_mmsyn7ukr.hs b/Processing_mmsyn7ukr.hs
--- a/Processing_mmsyn7ukr.hs
+++ b/Processing_mmsyn7ukr.hs
@@ -12,8 +12,9 @@
 --
 
 module Processing_mmsyn7ukr (
+  SuccessfulEndOfInfo
   -- * Main7ukr function
-  main7ukr
+  , main7ukr
   -- * Producing sound
   , produceSound
   , produceSound2
@@ -27,12 +28,14 @@
   -- * Cleaning
   , cleanTemp
   , cleanTempN
+  -- * Exception
+  , catchEnd
 ) where
 
-import Control.Concurrent (threadDelay)
+import Control.Concurrent (ThreadId, threadDelay)
 import Numeric
 import System.Directory
-import Control.Exception (onException)
+import Control.Exception (Exception, IOException, catch, throw, onException)
 import EndOfExe (showE)
 import Data.Maybe (fromJust)
 import Data.Char
@@ -45,7 +48,12 @@
 import ReplaceP (replaceP, replaceP4)
 import Paths_mmsyn6ukr
 
+-- | Data type 'SuccessfulEndOfInfo' is used to terminate the not needed further execution after being given the needed information.
+data SuccessfulEndOfInfo = SuccessfulEndOfInfo
+  deriving Show
 
+instance Exception SuccessfulEndOfInfo
+
 -- | Function that being given a tuple of @String@ and a path to the installed by the @mmsyn6ukr@ package file produces the corresponding analogous sound with your created 
 -- voicing. The tuple controls the function behaviour. The first @String@ in it specifies the actions that will be performed to produce a sound file and the second one 
 -- specifies a maximum absolute amplitude starting from which the sound will not be truncated if the 'alterVadB' and 'alterVadE' functions must be applied (that is specified 
@@ -171,8 +179,7 @@
     ; putStrLn "0 -> after the noise reduction the program only resample the audio to the needed 22050 Hz and adjusts the amlitude; "
     ; putStrLn "1 -> after the noise reduction the program additionally to the 0-processing truncates the silence from the beginning and end of the audio to the level given by the second command line parameter; "
     ; putStrLn "2 -> after the noise reduction the program additionally to the 1-processing applies a double band-reject filter to the audio (SoX \"sinc\" effect); "
-    ; putStrLn "3 -> after the noise reduction the program additionally to the 2-processing applies fade-in and fade-out effects to the audio; "
-    ; putStrLn "_ -> is the same as 3. "
+    ; putStrLn "_ -> after the noise reduction the program additionally to the 2-processing applies fade-in and fade-out effects to the audio; "
     ; putStrLn ""
     ; putStrLn "If you specified as a second command line argument one of the numbers below the program behaves as follows: "
     ; putStrLn "0 -> the maximum amplitude, starting from which the file will not be trimmed for the first command line argument greater of 1, is 0.01; "
@@ -488,3 +495,12 @@
   putStrLn "Your voice sound files are now created in the current directory! Use in a secure way! Remember the initial CAUTION! "
   putStrLn ""
   cleanTempN
+
+-- | Function to work with exception 'SuccessfulEndOfInfo' similarly to the example in the documentation for the 'catch' function.
+catchEnd :: ThreadId -> IO ()
+catchEnd _ = do
+  progName <- getProgName
+  catch (throw SuccessfulEndOfInfo)
+        (\e -> do let end = show (e :: IOException)
+                  hPutStr stdout (progName ++ ": " ++ end)
+                  return ())
diff --git a/mmsyn7ukr.cabal b/mmsyn7ukr.cabal
--- a/mmsyn7ukr.cabal
+++ b/mmsyn7ukr.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                mmsyn7ukr
-version:             0.8.0.0
+version:             0.9.0.0
 synopsis:            A simple basic interface to some SoX functionality or to produce a voice that can be used by mmsyn7h
 description:         A program and a library that can be used as a simple basic interface to some SoX functionality or to produce your voice in Ukrainian (if you pronounce the sounds properly) represented by the separate sounds or something special like soft sign.
 homepage:            https://hackage.haskell.org/package/mmsyn7ukr
