diff --git a/Source/Plugins/NodesViewer/NodesViewerMode.cs b/Source/Plugins/NodesViewer/NodesViewerMode.cs
index 42cd5ba492c6a0c958794cee8ffd13ae9c01c4dc..8b94c8bbaffabb26f8237185e06ab8538d27738d 100755
--- a/Source/Plugins/NodesViewer/NodesViewerMode.cs
+++ b/Source/Plugins/NodesViewer/NodesViewerMode.cs
@@ -4,6 +4,7 @@ using System;
 using System.Collections.Generic;
 using System.Drawing;
 using System.IO;
+using System.Linq;
 using System.Windows.Forms;
 using CodeImp.DoomBuilder.Editing;
 using CodeImp.DoomBuilder.Geometry;
@@ -92,7 +93,7 @@ namespace CodeImp.DoomBuilder.Plugins.NodesViewer
 		/// </summary>
 		private bool LoadClassicStructures()
 		{
-			List<string> unsupportedheaders = new List<string>() { "ZNOD", "XNOD" };
+			List<char[]> unsupportedheaders = new List<char[]>() { "ZNOD".ToCharArray(), "XNOD".ToCharArray() };
 
 			// Load the nodes structure
 			MemoryStream nodesstream = General.Map.GetLumpData("NODES");
@@ -106,9 +107,10 @@ namespace CodeImp.DoomBuilder.Plugins.NodesViewer
 
 			BinaryReader nodesreader = new BinaryReader(nodesstream);
 
-			string header = new string(nodesreader.ReadChars(4));
-
-			if(unsupportedheaders.Contains(header))
+			// Compare the char arrays. We can't do it by comparing strings, since the data read from the NODES
+			// lump might be interpreted as some UTF value. See https://github.com/jewalky/UltimateDoomBuilder/issues/827
+			char[] header = nodesreader.ReadChars(4);
+			if(unsupportedheaders.Where(e => Enumerable.SequenceEqual(e, header)).Any())
 			{
 				MessageBox.Show("ZDBSP compressed nodes are currently not supported.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
 				General.Editing.CancelMode();