Index: Source/Python/UPT/Library/ParserValidate.py
===================================================================
--- Source/Python/UPT/Library/ParserValidate.py	(revision 17822)
+++ Source/Python/UPT/Library/ParserValidate.py	(working copy)
@@ -721,3 +721,12 @@
             return False
     return True
 
+#
+# Check if a UTF16-LE file has a BOM header
+#
+def CheckUTF16FileHeader(File):
+    FileIn = open(File, 'rb').read(2)
+    if FileIn != '\xff\xfe':
+        return False
+
+    return True
Index: Source/Python/UPT/Library/UniClassObject.py
===================================================================
--- Source/Python/UPT/Library/UniClassObject.py	(revision 17872)
+++ Source/Python/UPT/Library/UniClassObject.py	(working copy)
@@ -27,6 +27,7 @@
 from Library.Misc import PathClass
 from Library.Misc import GetCharIndexOutStr
 from Library import DataType as DT
+from Library.ParserValidate import CheckUTF16FileHeader
 
 ##
 # Static definitions
@@ -136,6 +137,8 @@
 # @retval LangName:  Valid lanugage code in RFC 1766 format or None
 #
 def GetLanguageCode1766(LangName, File=None):
+    return LangName
+
     length = len(LangName)
     if length == 2:
         if LangName.isalpha():
@@ -424,6 +427,13 @@
                              ToolError.FILE_NOT_FOUND,
                              ExtraData=File.Path)
 
+        #
+        # Check file header of the Uni file
+        #
+        if not CheckUTF16FileHeader(File.Path):
+            EdkLogger.Error("Unicode File Parser", ToolError.FORMAT_INVALID,
+                            ExtraData='The file %s is either invalid UTF-16LE or it is missing the BOM.' % File.Path)
+
         try:
             FileIn = codecs.open(File.Path, mode='rb', encoding='utf_16').readlines()
         except UnicodeError:
@@ -570,11 +580,13 @@
                      
                 StringEntryExistsFlag = 1
                 if not Line.endswith('"'):
-                    EdkLogger.Error("Unicode File Parser", ToolError.FORMAT_INVALID, ExtraData=File.Path)
+                    EdkLogger.Error("Unicode File Parser", ToolError.FORMAT_INVALID,
+                                    ExtraData='''The line %s misses '"' at the end of it in file %s'''
+                                              % (LineCount, File.Path))
             elif Line.startswith(u'#language'):
                 if StringEntryExistsFlag == 2:
                     EdkLogger.Error("Unicode File Parser", ToolError.FORMAT_INVALID, 
-                                    Message=ST.ERR_UNIPARSE_LINEFEED_UP_EXIST % Line, ExtraData=File.Path)
+                                    Message=ST.ERR_UNI_MISS_STRING_ENTRY % Line, ExtraData=File.Path)
                 StringEntryExistsFlag = 0
             else:
                 StringEntryExistsFlag = 0
Index: Source/Python/UPT/Logger/StringTable.py
===================================================================
--- Source/Python/UPT/Logger/StringTable.py	(revision 17875)
+++ Source/Python/UPT/Logger/StringTable.py	(working copy)
@@ -46,9 +46,12 @@
 MSG_VERSION_COPYRIGHT = _("\n  %s\n  %s" % (MSG_VERSION, MSG_COPYRIGHT))
 MSG_USAGE = _("%s [options]\n%s" % ("UPT", MSG_VERSION_COPYRIGHT))
 MSG_DESCRIPTION = _("The UEFIUPT is used to create, " + \
-                    "install or remove a UEFI Distribution Package.")
+                    "install or remove a UEFI Distribution Package. " + \
+                    "If WORKSPACE environment variable is present, " + \
+                    "then UPT will install packages to the location specified by WORKSPACE, " + \
+                    "otherwise UPT will install packages to the current directory. " + \
+                    "Option -n will override this default installation location")
 
-
 #
 # INF Parser related strings.
 #
@@ -593,6 +596,7 @@
 ERR_UNIPARSE_STRTOKEN_FORMAT_ERROR = _("The String Token Type %s must be one of the '_PROMPT', '_HELP' and '_ERR_'.") 
 ERR_UNIPARSE_LINEFEED_UNDER_EXIST = _("Line feed should not exist under this line: %s.")
 ERR_UNIPARSE_LINEFEED_UP_EXIST = _("Line feed should not exist up this line: %s.")
+ERR_UNI_MISS_STRING_ENTRY = _("String entry missed in this Entry, %s.")
 ERR_UNI_MISS_LANGENTRY = _("Language entry missed in this Entry, %s.")
 ERR_BINARY_HEADER_ORDER           = _("Binary header must follow the file header.")
 ERR_NO_SOURCE_HEADER              = _("File header statement \"## @file\" must exist at the first place.")
