 edk2/ShellPkg/Library/UefiShellLevel2CommandsLib/Cp.c   | 4 ++--
 edk2/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c | 4 ++--
 edk2/ShellPkg/ShellPkg.dec                              | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/edk2/ShellPkg/Library/UefiShellLevel2CommandsLib/Cp.c b/edk2/ShellPkg/Library/UefiShellLevel2CommandsLib/Cp.c
index 00b51b4..387729b 100644
--- a/edk2/ShellPkg/Library/UefiShellLevel2CommandsLib/Cp.c
+++ b/edk2/ShellPkg/Library/UefiShellLevel2CommandsLib/Cp.c
@@ -81,7 +81,7 @@ CopySingleFile(
   Response      = *Resp;
   List          = NULL;
 
-  ReadSize = PcdGet16(PcdShellFileOperationSize);
+  ReadSize = PcdGet32(PcdShellFileOperationSize);
   // Why bother copying a file to itself
   if (StrCmp(Source, Dest) == 0) {
     return (SHELL_SUCCESS);
@@ -174,7 +174,7 @@ CopySingleFile(
     //
     Buffer = AllocateZeroPool(ReadSize);
     ASSERT(Buffer != NULL);
-    while (ReadSize == PcdGet16(PcdShellFileOperationSize) && !EFI_ERROR(Status)) {
+    while (ReadSize == PcdGet32(PcdShellFileOperationSize) && !EFI_ERROR(Status)) {
       Status = ShellReadFile(SourceHandle, &ReadSize, Buffer);
       ASSERT_EFI_ERROR(Status);
       Status = ShellWriteFile(DestHandle, &ReadSize, Buffer);
diff --git a/edk2/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c b/edk2/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
index 3e4ccb3..50974c3 100644
--- a/edk2/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
+++ b/edk2/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
@@ -42,7 +42,7 @@ TypeFileByHandle (
   UINTN       LoopVar;
   CHAR16      AsciiChar;
 
-  ReadSize = PcdGet16(PcdShellFileOperationSize);
+  ReadSize = PcdGet32(PcdShellFileOperationSize);
   Buffer = AllocateZeroPool(ReadSize);
   if (Buffer == NULL) {
     return (EFI_OUT_OF_RESOURCES);
@@ -51,7 +51,7 @@ TypeFileByHandle (
   Status = ShellSetFilePosition(Handle, 0);
   ASSERT_EFI_ERROR(Status);
 
-  while (ReadSize == ((UINTN)PcdGet16(PcdShellFileOperationSize))){
+  while (ReadSize == ((UINTN)PcdGet32(PcdShellFileOperationSize))){
     ZeroMem(Buffer, ReadSize);
     Status = ShellReadFile(Handle, &ReadSize, Buffer);
     if (EFI_ERROR(Status)){
diff --git a/edk2/ShellPkg/ShellPkg.dec b/edk2/ShellPkg/ShellPkg.dec
index 56f2af8..8bc8b9d 100644
--- a/edk2/ShellPkg/ShellPkg.dec
+++ b/edk2/ShellPkg/ShellPkg.dec
@@ -104,7 +104,7 @@
   gEfiShellPkgTokenSpaceGuid.PcdShellMapNameLength|50|UINT8|0x00000009
 
   ## This determins how many bytes are read out of files at a time for file operations (type, copy, etc...)
-  gEfiShellPkgTokenSpaceGuid.PcdShellFileOperationSize|1000|UINT16|0x0000000A
+  gEfiShellPkgTokenSpaceGuid.PcdShellFileOperationSize|1000|UINT32|0x0000000A
 
 [PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]
   ## This flag is used to control the protocols produced by the shell
