diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -102,3 +102,10 @@
 ## 0.7.2.0 -- 2020-01-30
 
 * Seventh version revised E. Changed the README file to the README.markdown. 
+
+## 0.7.3.0 -- 2020-03-11
+
+* Seventh version revised G. Fixed issue with being removed all sound files with extensions in the current directory in case of being executed without
+third and more command line arguments (no matter whether you specify to remove them or not). Changed the 'main7h' function and its realization.
+The possibility to clean sound files is now controlled by the separate prompt after inputing the text to be sounded. For this,
+a new function 'defineClean' is used.
diff --git a/MMSyn7h.hs b/MMSyn7h.hs
--- a/MMSyn7h.hs
+++ b/MMSyn7h.hs
@@ -10,6 +10,8 @@
 
 --
 
+{-# OPTIONS_GHC -threaded #-}
+
 module MMSyn7h where
 
 import Data.Char (isSpace, isControl)
@@ -18,7 +20,7 @@
 import System.Environment (getArgs)
 import System.Process (readProcessWithExitCode)
 import System.Directory (removeFile, listDirectory, getCurrentDirectory)
-import Control.Exception (bracketOnError)
+import Control.Exception (bracketOnError,onException)
 import EndOfExe (showE)
 import Melodics.Ukrainian (convertToProperUkrainian, takeData)
 import UkrainianLControl
@@ -31,7 +33,8 @@
 import Control.Exception.FinalException
 
 -- | Function that proposes and creates if accepted the sound record with the new \"voice\". It plays the newly created file once. Then it can delete 
--- the sound files in the current directory while being executed if the entered text starts with \"0\". If you enter as a first command line argument \"-h\",
+-- the sound files in the current directory while being executed if you specify when prompted the text that starts with \"y\".
+-- If you enter as a first command line argument \"-h\",
 -- then the program only prints informational message. If you specify as a first command line argument \"-v\", then
 -- the program only prints its version number. If you specify something else, the first command line argument is being treated as
 -- a name for the resulting file voiced. If you specify further command line arguments 
@@ -52,7 +55,7 @@
           putStrLn "mmsyn7h -v"
           putStr "If \"-h\" is specified, then you will see this message. If \"-v\" is specified, then you will see the version of the package mmsyn7h. "
           putStrLn "If something else (not null) is specified then the program runs further. "
-    "-v" -> putStrLn "mmsyn7h version: 0.7.2.0"
+    "-v" -> putStrLn "mmsyn7h version: 0.7.3.0"
     nameOfSoundFile    -> bracketOnError (do
           dir <- getCurrentDirectory
           putStrLn "You are now in the directory: " 
@@ -72,7 +75,8 @@
           return (args, nameSF)) (\(args, nameSF) -> do
             putStr "Notice, there was (may be) CmdLineArgument exception. To avoid it, please, specify the second command line argument (if needed) in the form \"ABC\""
             putStrLn $ " where A is either a letter \'f\', \'o\', \'w\' or a digit and B and C are both digits! The exception (may be) arose from the command line arguments " 
-              ++ show args ++ " for the file: " ++ show nameSF ++ ". Please, check also whether the SoX was installed with the support for needed codec.") (\(args, nameSF) -> do 
+              ++ show args ++ " for the file: " ++ show nameSF ++ ". Please, check also whether the SoX was installed with the support for needed codec.")
+              (\(args, nameSF) -> do 
                 let arg = drop 1 . take 2 $ args
                 if (not . null . drop 2 $ args)
                   then do
@@ -99,15 +103,9 @@
                                  return ()
                                else catchEnd ExecutableNotProperlyInstalled
                 else do 
-                  putStrLn ""
-                  putStr "The resulting file will be played just after it is created by the program. To remove all the created sound files from the directory, "
-                  putStrLn "please, specify now the first character in the input as \"0\". Otherwise, the program will not remove any records (if they are not overwritten). "
-                  putStrLn ""
-                  putStrLn "Now enter the Ukrainian text."
-                  putStrLn ""
-                  xs <- getContents
-                  if take 1 xs == "0" then do
-                    let ys = take (nSymbols (if null arg then [] else fst . genControl . head $ arg)) (drop 1 xs)
+                  [xs, wws] <- mapM defineClean ([0,1]::[Int])
+                  if wws == "y" then do
+                    let ys = take (nSymbols (if null arg then [] else fst . genControl . head $ arg)) xs
                     withBinaryFile (nameSF ++ ".raw") AppendMode (appendS16LEFile (convertToProperUkrainian ys))
                     putStrLn "The .raw file was created by the program. It will be processed further. "
                     let ts = fromJust (showE "sox") in do
@@ -136,13 +134,31 @@
                       removeFile $ nameSF ++ ".raw"
                       if take 5 os == "mingw" 
                         then do 
-                          _ <- readProcessWithExitCode (fromJust . showE $ "sox") [nameSF ++ snd ws, "-t", "waveaudio", "-d"] ""
-                          cleanCreatedSoundFs
+                          _ <- readProcessWithExitCode (fromJust . showE $ "sox") [nameSF ++ snd ws, "-t", "waveaudio", "-d"] "" >> return ()
                         else if isJust . showE $ "play" 
-                               then do
-                                 _ <- readProcessWithExitCode (fromJust . showE $ "play") [nameSF ++ snd ws] ""
-                                 cleanCreatedSoundFs
+                               then _ <- readProcessWithExitCode (fromJust . showE $ "play") [nameSF ++ snd ws] "" >> return ()
                                else catchEnd ExecutableNotProperlyInstalled)
+
+-- | Used internally in the 'main7h' function. 
+defineClean :: Int -> IO String
+defineClean x 
+  | x == 0 = onException (do
+     putStrLn ""
+     putStr "The resulting file will be played just after it is created by the program. "
+     putStrLn ""
+     putStrLn "Now enter the Ukrainian text."
+     putStrLn ""
+     xs <- getLine
+     return xs ) (do { putStrLn "The process was not successful may be because of the not valid data specified. Please, specify valid data. "
+                     ; defineClean 0 })
+  | otherwise = onException (do
+     putStr "Would you like to remove all the sound files created in the directory after playback? If yes, then enter here \"y\". Otherwise, "
+     putStrLn "the files will not be removed by the program. "
+     ys <- getLine
+     let zs = take 1 ys in return zs )
+       (do { putStr "The process was not successful may be because of the not valid data specified. "
+           ; putStrLn "Please, specify valid data. "
+           ; defineClean 1 })
 
 -- | The function that actually produces a .raw file. The mapping table is given in the @Map.txt@ file, but the sound duration differs.
 appendS16LEFile ::  V.Vector String -> Handle -> IO ()
diff --git a/README.markdown b/README.markdown
--- a/README.markdown
+++ b/README.markdown
@@ -15,11 +15,14 @@
          ----------------------
 
 The program mmsyn7h plays the newly created file once. Then it can delete 
-the sound files in the current directory while being executed if the
-entered text starts with "0". If you enter as a first command line
-argument "-h", then the program only prints informational message.
-If you specify as a first command line argument "-v", then the program
-only prints its version number.
+the sound files in the current directory while being executed. To define
+whether to clean the sound files after executing, user is prompted after
+spcifying the input text.
+
+If you enter as a first command line argument "-h", then the program only
+prints informational message. If you specify as a first command line
+argument "-v", then the program only prints its version number.
+
 If you specify something else, the first command line argument
 is being treated as a name for the resulting file voiced. The second
 command line argument (if any) must be the controlling parameter
diff --git a/mmsyn7h.cabal b/mmsyn7h.cabal
--- a/mmsyn7h.cabal
+++ b/mmsyn7h.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                mmsyn7h
-version:             0.7.2.0
+version:             0.7.3.0
 synopsis:            Produces a sound recording specified by the Ukrainian text.
 description:         A program and a library that are used with mmsyn7ukr (or separately) and are similar to mmsyn6ukr executable. The program uses the data files in the current directory instead of ones in the system defined directories. It reads Ukrainian text with the given by data files sounds.
 homepage:            https://hackage.haskell.org/package/mmsyn7h
