diff --git a/Source/Core/ZDoom/ZDTextParser.cs b/Source/Core/ZDoom/ZDTextParser.cs
index e547fa68473a3e16baa2e2b573c7ccf63c338898..a0e0b25fa3ccb3d7626f9dc42097bb4a43159046 100644
--- a/Source/Core/ZDoom/ZDTextParser.cs
+++ b/Source/Core/ZDoom/ZDTextParser.cs
@@ -281,6 +281,7 @@ namespace CodeImp.DoomBuilder.ZDoom
 				//mxd. Region/endregion handling
 				else if(skipregions && c == '#')
 				{
+					long startpos = datastream.Position - 1;
 					string s = ReadToken(false).ToLowerInvariant();
 					if(s == "region" || s == "endregion")
 					{
@@ -292,7 +293,7 @@ namespace CodeImp.DoomBuilder.ZDoom
 					else
 					{
 						// Rewind so this structure can be read again
-						DataStream.Seek(-s.Length - 2, SeekOrigin.Current);
+						DataStream.Seek(startpos, SeekOrigin.Begin);
 						return true;
 					}
 				}