diff --git a/Scripts/Functions/Locale/locale_updateMessageXml.sh b/Scripts/Functions/Locale/locale_updateMessageXml.sh
index c3e6f37..ffb860d 100755
--- a/Scripts/Functions/Locale/locale_updateMessageXml.sh
+++ b/Scripts/Functions/Locale/locale_updateMessageXml.sh
@@ -31,7 +31,7 @@ function locale_updateMessageXml {
 
     # Define filename used to create both portable object templates
     # (.pot) and portable objects (.po) files.
-    local FILE="${WORKDIR}/messages"
+    local MESSAGES="${WORKDIR}/messages"
 
     # Define regular expression to match the file extension of all
     # XML-based source files that can be localized inside the working
@@ -54,7 +54,7 @@ function locale_updateMessageXml {
         | egrep -v '/[[:alpha:]]{2}_[[:alpha:]]{2}/')
 
     # Print action message.
-    cli_printMessage "${FILE}.pot" --as-updating-line
+    cli_printMessage "${MESSAGES}.pot" --as-updating-line
 
     # Normalize XML files, expand entities before retriving
     # translatable strings and create the portable object template
@@ -69,16 +69,44 @@ function locale_updateMessageXml {
     # validate docbook files; Docbook files have a DOCTYPE definition
     # while svg files don't. Without a DOCTYPE definition, it isn't
     # possible for `xmllint' to validate the document. 
-    if [[ $ACTIONVAL =~ '^.+/(trunk|branches)/Manuals/.+$' ]];then
-        xmllint --valid --noent ${FILES} | xml2po -a - \
-            | msgcat --output=${FILE}.pot --width=70 --no-location -
-    elif [[ $ACTIONVAL =~ '^.+/(trunk|branches)/Identity/Models/.+$' ]];then
+    if [[ $ACTIONVAL =~ '^.+/(branches|trunk)/Manuals/.+$' ]];then
+
+        # Another issue to consider is the amount of source files that
+        # are being processed through xml2po. When there are more than
+        # one file, xml2po interprets only the first one and discards
+        # the rest in the list. This way, when more than one file
+        # exists in the list, it isn't convenient to provide xmllint's
+        # output to xml2po's input. Once here, we can say that
+        # in order to expand DocBook entities it is required that only
+        # one file must be provided at localization time (e.g., using
+        # the `--filter' option). Otherwise translation messages are
+        # retrived from all files, but no entity expansion is realized
+        # because xmllint wouldn't be used in such case.
+        if [[ $(echo "$FILES" | wc -l) -eq 1 ]];then
+
+            xmllint --valid --noent ${FILES} | xml2po -a - \
+                | msgcat --output=${MESSAGES}.pot --width=70 --no-location -
+
+        else
+
+            xml2po -a ${FILES} \
+                | msgcat --output=${MESSAGES}.pot --width=70 --no-location -
+
+        fi
+
+    elif [[ $ACTIONVAL =~ '^.+/(branches|trunk)/Identity/Models/.+$' ]];then
+
         xml2po -a ${FILES} \
-            | msgcat --output=${FILE}.pot --width=70 --no-location -
+            | msgcat --output=${MESSAGES}.pot --width=70 --no-location -
+
+    else
+
+        cli_printMessage "`gettext "The path provided doesn't support localization."`" --as-error-line
+
     fi
 
-    # Verify, initialize or merge portable objects from portable
-    # object templates.
-    ${CLI_FUNCNAME}_updateMessagePObjects "${FILE}"
+   # Verify, initialize or merge portable objects from portable object
+   # templates.
+   ${CLI_FUNCNAME}_updateMessagePObjects "${MESSAGES}"
 
 }