diff --git a/Source/Core/IO/ClipboardStreamReader.cs b/Source/Core/IO/ClipboardStreamReader.cs
index b507f7ff19bbe59d24a935a604fa971bb4954a39..b7efcf1deb6925f5eb04a470e347a27e5aeb8027 100644
--- a/Source/Core/IO/ClipboardStreamReader.cs
+++ b/Source/Core/IO/ClipboardStreamReader.cs
@@ -132,7 +132,7 @@ namespace CodeImp.DoomBuilder.IO
 				//flags
 				Dictionary<string, bool> stringflags = new Dictionary<string, bool>(StringComparer.Ordinal);
 				int numFlags = reader.ReadInt32();
-				for(int f = 0; f < numFlags; f++) stringflags.Add(ReadString(reader), true);
+				for(int f = 0; f < numFlags; f++) stringflags.Add(ReadString(reader), reader.ReadBoolean());
 
 				//add missing flags
 				foreach(KeyValuePair<string, string> flag in General.Map.Config.SectorFlags) 
@@ -187,7 +187,7 @@ namespace CodeImp.DoomBuilder.IO
 				//flags
 				Dictionary<string, bool> stringflags = new Dictionary<string, bool>(StringComparer.Ordinal);
 				int numFlags = reader.ReadInt32();
-				for(int f = 0; f < numFlags; f++) stringflags.Add(ReadString(reader), true);
+				for(int f = 0; f < numFlags; f++) stringflags.Add(ReadString(reader), reader.ReadBoolean());
 
 				//add missing flags
 				foreach(KeyValuePair<string, string> flag in General.Map.Config.LinedefFlags) 
@@ -290,8 +290,7 @@ namespace CodeImp.DoomBuilder.IO
 				//flags
 				data.Flags = new Dictionary<string, bool>(StringComparer.Ordinal);
 				int numFlags = reader.ReadInt32();
-				for(int f = 0; f < numFlags; f++)
-					data.Flags.Add(ReadString(reader), true);
+				for(int f = 0; f < numFlags; f++) data.Flags.Add(ReadString(reader), reader.ReadBoolean());
 
 				//add missing flags
 				foreach(KeyValuePair<string, string> flag in General.Map.Config.SidedefFlags)