diff --git a/Scripts/Bash/Functions/Commons/cli_getLocalizationDir.sh b/Scripts/Bash/Functions/Commons/cli_getLocalizationDir.sh
index 9b75ffd..42c4456 100755
--- a/Scripts/Bash/Functions/Commons/cli_getLocalizationDir.sh
+++ b/Scripts/Bash/Functions/Commons/cli_getLocalizationDir.sh
@@ -31,10 +31,16 @@ function cli_getLocalizationDir {
     # against source directory locations in the working copy.
     LOCATION=$(cli_checkRepoDirSource "${1}")
 
+    # In case the location specified would be a file, remove the file
+    # part from the path so only its parent directory remains.
+    if [[ -f ${LOCATION} ]];then
+        LOCATION=$(dirname ${LOCATION})
+    fi
+
     # Make path transformation.
     case "${2}" in
 
-        '--no-lang')
+        '--no-lang' )
             LOCATION=$(echo "${LOCATION}" \
                 | sed -r -e "s!(Identity|Scripts|Documentation)!Locales/\1!")
             ;;
diff --git a/Scripts/Bash/Functions/Commons/cli_printMessage.sh b/Scripts/Bash/Functions/Commons/cli_printMessage.sh
index 94e54b4..e4cdd4d 100755
--- a/Scripts/Bash/Functions/Commons/cli_printMessage.sh
+++ b/Scripts/Bash/Functions/Commons/cli_printMessage.sh
@@ -256,6 +256,10 @@ function cli_printMessage {
             cli_printMessage "`gettext "Translation"`: $MESSAGE" --as-stdout-line
             ;;
 
+        --as-translating-line )
+            cli_printMessage "`gettext "Translating"`: $MESSAGE" --as-stdout-line
+            ;;
+
         --as-validating-line )
             cli_printMessage "`gettext "Validating"`: $MESSAGE" --as-stdout-line
             ;;
diff --git a/Scripts/Bash/Functions/Locale/locale_updateMessageXmlDocbook.sh b/Scripts/Bash/Functions/Locale/locale_updateMessageXmlDocbook.sh
index b4301b5..04448e2 100755
--- a/Scripts/Bash/Functions/Locale/locale_updateMessageXmlDocbook.sh
+++ b/Scripts/Bash/Functions/Locale/locale_updateMessageXmlDocbook.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 #
-# locale_updateMessageXmlDocbook.sh -- This function retrives
+# locale_updateMessageXmlDocbook.sh -- This function retrieves
 # translation messages from Docbook files and creates related portable
 # object template for them.
 #
@@ -29,13 +29,6 @@ function locale_updateMessageXmlDocbook {
     # Define location where translation files will be stored in.
     local L10N_WORKDIR=$(cli_getLocalizationDir ${ACTIONVAL})
 
-    # Define location of the file used to create both portable object
-    # templates (.pot) and portable objects (.po) files.
-    local MESSAGES="${L10N_WORKDIR}/messages"
-
-    # Print action message.
-    cli_printMessage "${MESSAGES}.pot" --as-updating-line
-
     # Define regular expression to match extensions of shell scripts
     # we use inside the repository.
     local EXTENSION='docbook'
@@ -45,53 +38,18 @@ function locale_updateMessageXmlDocbook {
         --maxdepth=1 --mindepth=1 --type='f' \
         --pattern=".+/$(cli_getRepoName ${ACTIONVAL} -f)\.${EXTENSION}$")
 
-    # Verify existence of docbook's main template file. We cannot go
-    # on without it.
-    cli_checkFiles -e ${TEMPLATE}
-
-    # Define file name used as template instance. Here is where we
-    # expand translation markers and entities before retrieving
-    # translation messages.
-    local INSTANCE=$(cli_getTemporalFile "$(basename ${TEMPLATE})")
-
-    # Expand system entities definition.
-    cli_exportFunctions "Render/Docbook/docbook_doTranslation"
-    docbook_doTranslation
-
-    # Expand translation markers inside instance.
-    cli_expandTMarkers ${INSTANCE}
-
-    # Expand system entities definition.
-    cli_exportFunctions "Render/Docbook/docbook_expandSystemEntities"
-    docbook_expandSystemEntities ${INSTANCE}
-
-    # Expand license block.
-    cli_exportFunctions "Render/Docbook/docbook_expandLicenses"
-    docbook_expandLicenses ${INSTANCE}
-
-    # Create link to `Images' directory for validation to pass.
-    # Otherwise, a validation error is reported because no path was
-    # found to images.
-    ln -s ${TCAR_WORKDIR}/Identity/Images/Webenv $(dirname ${INSTANCE})/Images
-
-    # Move into temporal directory so paths can be found relatively.
-    pushd $(dirname ${INSTANCE}) > /dev/null
-
-    # Prepare working directory to receive translation files.
-    locale_prepareWorkingDirectory ${L10N_WORKDIR}
-
-    # Create portable object template from instance.
-    xmllint --valid --noent ${INSTANCE} | xml2po -a -l ${CLI_LANG_LC} - \
-        | msgcat --output=${MESSAGES}.pot --width=70 --no-location -
-
-    # Move out to initial location.
-    popd > /dev/null
-
-    # Remove instance.
-    rm ${INSTANCE}
-
-    # Verify, initialize or merge portable objects from portable
-    # object templates.
-    locale_updateMessagePObjects "${MESSAGES}"
+    # Process Docbook template files based on whether it is empty or
+    # not. When it is empty, it is because there is not a Docbook main
+    # file in the location provided to centos-art.sh script
+    # command-line. In this case, we try to create one POT file to all
+    # docbook files inside the location provided but without expanding
+    # entities. When Docbook template file is not empty, expand
+    # entities and create the POT file from a Docbook main file
+    # instance, with all entities expanded. 
+    if [[ -z ${TEMPLATE} ]];then
+        locale_updateMessageXmlDocbookNoEntities
+    else
+        locale_updateMessageXmlDocbookWithEntities
+    fi
 
 }
diff --git a/Scripts/Bash/Functions/Locale/locale_updateMessageXmlDocbookNoEntities.sh b/Scripts/Bash/Functions/Locale/locale_updateMessageXmlDocbookNoEntities.sh
new file mode 100755
index 0000000..67d6f75
--- /dev/null
+++ b/Scripts/Bash/Functions/Locale/locale_updateMessageXmlDocbookNoEntities.sh
@@ -0,0 +1,73 @@
+#!/bin/bash
+#
+# locale_updateMessageXmlDocbookNoEntities.sh -- This function creates
+# an instance of one or more Docbook files without expanding entities
+# inside it, retrieves all translatable strings from main file
+# instance, and creates the related portable object template POT for
+# them. This is useful to localize Docbook files that aren't direct
+# part of a documentation manual but included at rendition time (e.g.,
+# Docbook files holding license information).
+#
+# Copyright (C) 2009-2013 The CentOS Project
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or (at
+# your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+# ----------------------------------------------------------------------
+# $Id$
+# ----------------------------------------------------------------------
+
+function locale_updateMessageXmlDocbookNoEntities {
+
+    # In case no path to Docbook main file is not found, go deeper
+    # into the documentation models directory structure looking for
+    # files that do match the name of the directory who hold it, and
+    # use that file as template to initiate localization process. The
+    # way to reach these files have to be through --filter options
+    # because we want to respect the restrictions imposed by
+    # locale_isLocalizable function inside the repository.
+    # CAUTION: entity expansion the files found this way will be # ignored.
+    local TEMPLATES=$(cli_getFilesList ${ACTIONVAL} --type='f' \
+        --pattern=".+/${FLAG_FILTER}.+\.${EXTENSION}$")
+
+    # Verify number of template files found and define what kind of
+    # processing they are going to have. In case more than one
+    # template file be found and because entity expansion will be
+    # ignored in such case, the whole process of creating the PO file
+    # for all these templates is also different (simpler) from that we
+    # use with entity expansion.
+
+    for TEMPLATE in ${TEMPLATES};do
+
+        # Redefine path related to localization work directory.
+        local L10N_WORKDIR=$(cli_getLocalizationDir "$TEMPLATE")
+
+        # Define location of the file used to create both portable
+        # object templates (.pot) and portable objects (.po) files.
+        local MESSAGES="${L10N_WORKDIR}/messages"
+
+        # Print action message.
+        cli_printMessage "${MESSAGES}.pot" --as-updating-line
+
+        # Extract translatable strings from docbook files and merge
+        # them down into related messages file.
+        xml2po -a -l ${CLI_LANG_LL} -o ${MESSAGES}.pot ${TEMPLATE} 
+
+        # Verify, initialize or merge portable objects from portable
+        # object templates.
+        locale_updateMessagePObjects "${MESSAGES}"
+
+    done
+
+}
diff --git a/Scripts/Bash/Functions/Locale/locale_updateMessageXmlDocbookWithEntities.sh b/Scripts/Bash/Functions/Locale/locale_updateMessageXmlDocbookWithEntities.sh
new file mode 100755
index 0000000..9556e6b
--- /dev/null
+++ b/Scripts/Bash/Functions/Locale/locale_updateMessageXmlDocbookWithEntities.sh
@@ -0,0 +1,71 @@
+#!/bin/bash
+#
+# locale_updateMessageXmlDocbookWithEntities.sh -- This function
+# creates an instance of Docbook main file, expands entities inside
+# it, retrieves all translatable strings from main file instance, and
+# creates the related portable object template POT for them.
+#
+# Copyright (C) 2009-2013 The CentOS Project
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or (at
+# your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+# ----------------------------------------------------------------------
+# $Id$
+# ----------------------------------------------------------------------
+
+function locale_updateMessageXmlDocbookWithEntities {
+
+    # Define location of the file used to create both portable object
+    # templates (.pot) and portable objects (.po) files.
+    local MESSAGES="${L10N_WORKDIR}/messages"
+
+    # Print action message.
+    cli_printMessage "${MESSAGES}.pot" --as-updating-line
+
+    # Define file name used as template instance. Here is where we
+    # expand translation markers and entities before retrieving
+    # translation messages.
+    local INSTANCE=$(cli_getTemporalFile "$(basename ${TEMPLATE})")
+
+    # Create the non-translated instance of design model.
+    cp ${TEMPLATE} ${INSTANCE}
+
+    # Expand common contents inside instance.
+    cli_exportFunctions "Render/Docbook/docbook_expandLicenses"
+    docbook_expandLicenses ${INSTANCE}
+
+    # When translated instances are rendered, system entities (e.g.,
+    # `%entity-name;') don't appear in the translated instance (it
+    # seems that xml2po removes them) and this provokes DocBook
+    # validation to fail.  So in order to pass the validation
+    # successfully and automate the whole creation of system entities,
+    # don't let this duty ion users'. Instead, make centos-art.sh
+    # script responsible of it.
+    cli_exportFunctions "Render/Docbook/docbook_expandSystemEntities"
+    docbook_expandSystemEntities ${INSTANCE}
+
+    # Create portable object template from instance.  Validate
+    # translated instance before processing it. This step is very
+    # important in order to detect document's malformations and warn
+    # you about it, so you can correct them. 
+    xmllint --valid --noent ${INSTANCE} | xml2po -a -l ${CLI_LANG_LC} - \
+        | msgcat --output=${MESSAGES}.pot \
+                 --width=70 --no-location -
+
+    # Verify, initialize or merge portable objects from portable
+    # object templates.
+    locale_updateMessagePObjects "${MESSAGES}"
+
+}
diff --git a/Scripts/Bash/Functions/Render/Docbook/docbook.sh b/Scripts/Bash/Functions/Render/Docbook/docbook.sh
index c78c431..293dda1 100755
--- a/Scripts/Bash/Functions/Render/Docbook/docbook.sh
+++ b/Scripts/Bash/Functions/Render/Docbook/docbook.sh
@@ -37,9 +37,8 @@ function docbook {
     # Verify absolute path to DocBook models.
     cli_checkFiles ${DOCBOOK_MODELS} -d
 
-    # Apply translation to design model in order to produce the
-    # translated design model instance.
-    docbook_doTranslation
+    # Create the non-translated instance of design model. 
+    cp ${TEMPLATE} ${INSTANCE}
 
     # Expand common contents inside instance.
     docbook_expandLicenses ${INSTANCE}
@@ -74,9 +73,16 @@ function docbook {
     # entities already expanded.
     cli_expandTMarkers ${INSTANCE}
 
+    # Verify translation file existence apply translation to docbook
+    # design model instance in order to produce the translated design
+    # model instance.
+    if [[ -f ${TRANSLATION} ]];then
+        docbook_doTranslation ${INSTANCE}
+    fi
+
     # Convert DocBook source files to other formats.
-    docbook_convertToXhtmlChunk
-    docbook_convertToXhtml
+    docbook_convertToXhtmlChunk ${INSTANCE}
+    docbook_convertToXhtml ${INSTANCE}
     docbook_convertToText
 
     # NOTE: The current transformation from DocBook to PDF fails when
diff --git a/Scripts/Bash/Functions/Render/Docbook/docbook_convertToXhtml.sh b/Scripts/Bash/Functions/Render/Docbook/docbook_convertToXhtml.sh
index 35a7dcd..d750d8e 100755
--- a/Scripts/Bash/Functions/Render/Docbook/docbook_convertToXhtml.sh
+++ b/Scripts/Bash/Functions/Render/Docbook/docbook_convertToXhtml.sh
@@ -42,7 +42,7 @@ function docbook_convertToXhtml {
     # Define absolute path to DocBook source file. This is the
     # repository documentation manual file where DOCTYPE and ENTITY
     # definition lines are set.
-    local SRC=${INSTANCE}
+    local SRC=${1}
 
     # Define absolute path to PDF target file. This is the final
     # location the PDF file produced as result of DocBook to PDF
diff --git a/Scripts/Bash/Functions/Render/Docbook/docbook_convertToXhtmlChunk.sh b/Scripts/Bash/Functions/Render/Docbook/docbook_convertToXhtmlChunk.sh
index fab14e5..43933c9 100755
--- a/Scripts/Bash/Functions/Render/Docbook/docbook_convertToXhtmlChunk.sh
+++ b/Scripts/Bash/Functions/Render/Docbook/docbook_convertToXhtmlChunk.sh
@@ -33,6 +33,11 @@ function docbook_convertToXhtmlChunk {
     local -a STYLE_INSTANCE
     local STYLE_INSTANCE_FINAL=''
 
+    # Define absolute path to DocBook source file. This is the
+    # repository documentation manual file where DOCTYPE and ENTITY
+    # definition lines are set.
+    local SRC=${1}
+
     # Define absolute path to PDF target file. This is the final
     # location the PDF file produced as result of DocBook to PDF
     # transformation will be stored in.
@@ -48,11 +53,6 @@ function docbook_convertToXhtmlChunk {
     # Print action message.
     cli_printMessage "${FILE}-xhtml" --as-creating-line
 
-    # Define absolute path to DocBook source file. This is the
-    # repository documentation manual file where DOCTYPE and ENTITY
-    # definition lines are set.
-    local SRC=${INSTANCE}
-
     # Prepare XSL final instances used in transformations.
     docbook_prepareStyles $(cli_getFilesList \
         ${DOCBOOK_XSL} --pattern='^.*/docbook2xhtml-(chunks|common)\.xsl$')
diff --git a/Scripts/Bash/Functions/Render/Docbook/docbook_doTranslation.sh b/Scripts/Bash/Functions/Render/Docbook/docbook_doTranslation.sh
index f0e9ce8..ee53baa 100755
--- a/Scripts/Bash/Functions/Render/Docbook/docbook_doTranslation.sh
+++ b/Scripts/Bash/Functions/Render/Docbook/docbook_doTranslation.sh
@@ -32,84 +32,58 @@
 
 function docbook_doTranslation {
 
-    # Define which command will be used to output the template
-    # content. This is required because template files might be found
-    # as compressed files inside the repository.
-    local COMMAND="/bin/cat"
-    if [[ $(file -b -i $TEMPLATE) =~ '^application/x-gzip$' ]];then
-        COMMAND="/bin/zcat"
-    fi
-
-    # Move into template's directory in order to satisfy relative
-    # entities.  Take care that some XML documents (e.g., DocBook
-    # documents) can use entities relatively from their base
-    # locations. In order to process such documents, it is necessary
-    # to put the template directory up in the directory stack and
-    # create the instance from there. Thus, it is possible to expand
-    # relative entities correctly when validating the document.
-    pushd $(dirname $TEMPLATE) > /dev/null
-
-    # Verify translation file existence and create template
-    # instance accordingly.
-    if [[ -f ${TRANSLATION} ]];then
-
-        # Print final location of translation file.
-        cli_printMessage "${TRANSLATION}" --as-translation-line
+    # Print final location of translation file.
+    cli_printMessage "${TRANSLATION}" --as-translation-line
 
-        # Create translation instance to combine both template
-        # translation and licenses translations.
-        local TRANSLATION_INSTANCE=${TMPDIR}/messages.po
+    # Create translation instance to combine both template translation
+    # and licenses translations.
+    local TRANSLATION_INSTANCE=${TMPDIR}/messages.po
     
-        # Define path to DocBook locales using models as reference.
-        local DOCBOOK_LOCALES=$(cli_getLocalizationDir "$DOCBOOK_MODELS")
-
-        # Define list of all locale files you want to combine. This
-        # include the localization files related to all different kind
-        # of licenses you want to use in the main documentation file
-        # and the localization file of the main documentation file, as
-        # well.
-        local DOCBOOK_PO_FILES="${TCAR_WORKDIR}/Locales/Documentation/Models/Docbook/Default/Licenses/Gfdl/${CLI_LANG_LC}/messages.po \
-            ${TCAR_WORKDIR}/Locales/Documentation/Models/Docbook/Default/Licenses/Gpl/${CLI_LANG_LC}/messages.po \
-            ${TRANSLATION}"
-
-        # Be sure the files we want to combine do exist.
-        cli_checkFiles -e ${DOCBOOK_PO_FILES}
-
-        # Combine license translations with template translation in
-        # order to reuse licenses translations in template files
-        # without including them in template portable objects. In the
-        # case of DocBook templates, translations related to licenses
-        # are required because license content is expanded at
-        # execution time inside the DocBook instance used by XSL
-        # processor during transformation.
-        msgcat --output=${TRANSLATION_INSTANCE} \
-            --width=70 --no-location --use-first ${DOCBOOK_PO_FILES}
-
-        # Create the translated instance of design model.
-        ${COMMAND} ${TEMPLATE} | xml2po -a -l ${CLI_LANG_LL} \
-            -p ${TRANSLATION_INSTANCE} -o ${INSTANCE} -
-
-        # Remove .xml2po.mo temporal file.
-        if [[ -f ${PWD}/.xml2po.mo ]];then
-            rm ${PWD}/.xml2po.mo
-        fi
-
-        # Remove instance created to store both licenses and template
-        # translations.
-        if [[ -f ${TRANSLATION_INSTANCE} ]];then
-            rm ${TRANSLATION_INSTANCE}
-        fi
-
-    else
-
-        # Create the non-translated instance of design model. 
-        ${COMMAND} ${TEMPLATE} > ${INSTANCE}
-
+    # Define path to DocBook locales using models as reference.
+    local DOCBOOK_LOCALES=$(cli_getLocalizationDir "$DOCBOOK_MODELS")
+
+    # Define list of all locale files you want to combine. This
+    # include the localization files related to all different kind of
+    # licenses you want to use in the main documentation file and the
+    # localization file of the main documentation file, as well.
+    local DOCBOOK_PO_FILES="${TCAR_WORKDIR}/Locales/Documentation/Models/Docbook/Default/Licenses/Gfdl/${CLI_LANG_LC}/messages.po \
+        ${TCAR_WORKDIR}/Locales/Documentation/Models/Docbook/Default/Licenses/Gpl/${CLI_LANG_LC}/messages.po \
+        ${TRANSLATION}"
+
+    # Be sure the files we want to combine do exist.
+    cli_checkFiles -e ${DOCBOOK_PO_FILES}
+
+    # Combine license translations with template translation in order
+    # to reuse licenses translations in template files without
+    # including them in template portable objects. In the case of
+    # DocBook templates, translations related to licenses are required
+    # because license content is expanded at execution time inside the
+    # DocBook instance used by XSL processor during transformation.
+    msgcat --output=${TRANSLATION_INSTANCE} \
+        --width=70 --no-location --use-first ${DOCBOOK_PO_FILES}
+
+    # At this point the translation instance with both licenses and
+    # manual translations have been saved. Now it is required to
+    # expand entities so it could be possible to create a translated
+    # instance with all the content inside.
+
+    # Print action message.
+    cli_printMessage "${INSTANCE}" --as-translating-line
+
+    # Create the translated instance of design model instance with all
+    # entities and translation markers expanded.
+    xml2po -a -l ${CLI_LANG_LL} \
+        -p ${TRANSLATION_INSTANCE} \
+        -o ${INSTANCE}-${CLI_LANG_LL}.tmp ${INSTANCE}
+
+    # Rename final instance so it can be treated as just instance. 
+    mv ${INSTANCE}-${CLI_LANG_LL}.tmp ${INSTANCE}
+
+    # Remove .xml2po.mo temporal file.
+    if [[ -f ${PWD}/.xml2po.mo ]];then
+        rm ${PWD}/.xml2po.mo
     fi
 
-    # Return to where we were.
-    popd > /dev/null
-
     # Verify instance existence.
     cli_checkFiles -e $INSTANCE