diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -54,3 +54,7 @@
 ## 0.4.0.3 -- 2019-12-06
 
 * Fourth version revised C. Fixed issues with the documentation.
+
+## 0.4.0.4 -- 2019-12-06
+
+* Fourth version revised D. Fixed issues with the documentation. Fixed an issue with the nSymbols function in the Melodics.Ukrainian module.
diff --git a/Main.hs b/Main.hs
--- a/Main.hs
+++ b/Main.hs
@@ -5,7 +5,7 @@
 --
 -- Maintainer  :  olexandr543@yahoo.com
 --
--- A program that can be used as a musical instrument synthesizer or for Ukrainian speech synthesis 
+-- A program and a library that can be used as a musical instrument synthesizer or for Ukrainian speech synthesis 
 -- especially for poets, translators and writers. 
 --
 
diff --git a/Melodics/Ukrainian.hs b/Melodics/Ukrainian.hs
--- a/Melodics/Ukrainian.hs
+++ b/Melodics/Ukrainian.hs
@@ -5,13 +5,14 @@
 --
 -- Maintainer  :  olexandr543@yahoo.com
 --
--- A program that can be used as a musical instrument synthesizer or for Ukrainian speech synthesis 
+-- Functions used in the main function to provide functionality of a musical instrument synthesizer or for Ukrainian speech synthesis 
 -- especially for poets, translators and writers. 
 --
 
 module Melodics.Ukrainian (
   appendS16LEFile,
-  convertToProperUkrainian, 
+  convertToProperUkrainian,
+  -- * Securing and Limits
   nSymbols
 ) where
 
@@ -312,14 +313,15 @@
               | otherwise = getBFst' (False, V.fromList . map (\x -> (x, True)) $ "'-\700\1028\1030\1031\1068\1100\1102\1103\1108\1110\1111\1168\1169\8217") y
 
 -- | Function that converts the first command line argument given, which is a digit in the range @[0..9]@ 
--- (providing an ascennding logarithmic scale starting from 2 and ending at 1000000001), 
--- to the upper bound of number of symbols that the 'Main.main' function reads from the @stdin@ for sounding.
+-- (providing an ascending approximately exponential scale with a basis of 10 starting from 2 and ending at 1000000001), 
+-- to the upper bound of number of symbols that the 'Main.main' function of the @mmsyn6ukr@ executable reads from the 'System.IO.stdin' for sounding.
 -- The default value (no input) is 31416. If there is another first command line argument then the program 
 -- terminates with the error and informational message. Using the command line argument is done for the security reasons: 
 -- because of performative writing to the resulting file(s) there is a need to limit the used memory. For most cases it is
--- enough to use the default value. If you have enough resources and a large Ukrainian text amount then specify the higher values.
+-- enough to use the default value. If you have enough resources and a large Ukrainian text amount then specify the higher values 
+-- (5 or a greater one). 
 nSymbols :: String -> Int
 nSymbols xs | null xs = 31416::Int
-            | otherwise = getBFst' (31416::Int, V.generate 10 (\n -> (n, (10^n + 1)::Int))) (let temp = read xs::Int in if temp <= 9 && temp >= 1
+            | otherwise = getBFst' (31416::Int, V.generate 10 (\n -> (n, (10^n + 1)::Int))) (let temp = read xs::Int in if temp <= 9 && temp >= 0
                             then temp 
                             else error "Please, specify a digit as a command line argument for the program!")
diff --git a/mmsyn6ukr.cabal b/mmsyn6ukr.cabal
--- a/mmsyn6ukr.cabal
+++ b/mmsyn6ukr.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                mmsyn6ukr
-version:             0.4.0.3
+version:             0.4.0.4
 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
