diff --git a/src/modules/fancyzones/lib/JsonHelpers.cpp b/src/modules/fancyzones/lib/JsonHelpers.cpp
index c6194365e1ba..eba75334f082 100644
--- a/src/modules/fancyzones/lib/JsonHelpers.cpp
+++ b/src/modules/fancyzones/lib/JsonHelpers.cpp
@@ -55,9 +55,34 @@ namespace JSONHelpers
 
     bool isValidDeviceId(const std::wstring& str)
     {
+        std::wstring monitorName;
         std::wstring temp;
         std::vector<std::wstring> parts;
         std::wstringstream wss(str);
+
+        /* 
+         Important fix for device info that contains a '_' in the name:
+         1. first search for '#'
+         2. Then split the remaining string by '_' 
+        */
+
+        // Step 1: parse the name until the #, then to the '_'
+        if (str.find(L'#') != std::string::npos)
+        {
+            std::getline(wss, temp, L'#');
+
+            monitorName = temp;
+
+            if (!std::getline(wss, temp, L'_'))
+            {
+                return false;
+            }
+
+            monitorName += L"#" + temp;
+            parts.push_back(monitorName);
+        }
+
+        // Step 2: parse the rest of the id
         while (std::getline(wss, temp, L'_'))
         {
             parts.push_back(temp);
diff --git a/src/modules/fancyzones/tests/UnitTests/JsonHelpers.Tests.cpp b/src/modules/fancyzones/tests/UnitTests/JsonHelpers.Tests.cpp
index 01f1669e3431..78fc684d1a40 100644
--- a/src/modules/fancyzones/tests/UnitTests/JsonHelpers.Tests.cpp
+++ b/src/modules/fancyzones/tests/UnitTests/JsonHelpers.Tests.cpp
@@ -84,6 +84,24 @@ namespace FancyZonesUnitTests
             Assert::IsTrue(isValidDeviceId(deviceId));
         }
 
+        TEST_METHOD (DeviceIdWithoutHashInName)
+        {
+            const auto deviceId = L"LOCALDISPLAY_5120_1440_{00000000-0000-0000-0000-000000000000}";
+            Assert::IsTrue(isValidDeviceId(deviceId));
+        }
+
+        TEST_METHOD (DeviceIdWithoutHashInNameButWithUnderscores)
+        {
+            const auto deviceId = L"LOCAL_DISPLAY_5120_1440_{00000000-0000-0000-0000-000000000000}";
+            Assert::IsFalse(isValidDeviceId(deviceId));
+        }
+
+        TEST_METHOD (DeviceIdWithUnderscoresInName)
+        {
+            const auto deviceId = L"Default_Monitor#1&1f0c3c2f&0&UID256_5120_1440_{00000000-0000-0000-0000-000000000000}";
+            Assert::IsTrue(isValidDeviceId(deviceId));
+        }
+
         TEST_METHOD (DeviceIdInvalidFormat)
         {
             const auto deviceId = L"_1920_1200_{39B25DD2-130D-4B5D-8851-4791D66B1539}";