Index: Application/Shell/ShellProtocol.c
===================================================================
--- Application/Shell/ShellProtocol.c	(revision 15442)
+++ Application/Shell/ShellProtocol.c	(working copy)
@@ -1914,6 +1914,8 @@
     }
   }
 
+  TempString = PathCleanUpDirectories(TempString);
+
   ShellFileListItem->FullName = TempString;
   ShellFileListItem->Status   = Status;
   ShellFileListItem->Handle   = Handle;
@@ -2143,7 +2145,7 @@
       //
       FileInfo = FileHandleGetInfo(FileHandle);
       NewShellNode = CreateAndPopulateShellFileInfo(
-        L":",
+        MapName,
         EFI_SUCCESS,
         L"\\",
         FileHandle,
Index: Library/BasePathLib/BasePathLib.c
===================================================================
--- Library/BasePathLib/BasePathLib.c	(revision 15442)
+++ Library/BasePathLib/BasePathLib.c	(working copy)
@@ -116,8 +116,16 @@
     *(TempString + 1) = CHAR_NULL;
   }
 
+  while ((TempString = StrStr(Path, L"\\\\")) != NULL) {
+    *TempString = CHAR_NULL;
+    TempString  += 1;
+    TempSize = StrSize(TempString);
+    CopyMem(Path+StrLen(Path), TempString, TempSize);
+  }
+  if ((TempString = StrStr(Path, L"\\\\")) != NULL && *(TempString + 1) == CHAR_NULL) {
+    *(TempString) = CHAR_NULL;
+  }
 
-
   return (Path);
 }
 
