diff --git a/Source/Core/Config/ProgramConfiguration.cs b/Source/Core/Config/ProgramConfiguration.cs
index 42ae1d4..21e9ef8 100644
--- a/Source/Core/Config/ProgramConfiguration.cs
+++ b/Source/Core/Config/ProgramConfiguration.cs
@@ -19,11 +19,12 @@
 using System;
 using System.Collections;
 using System.Collections.Generic;
-using CodeImp.DoomBuilder.IO;
+using System.Drawing;
 using System.IO;
-using System.Windows.Forms;
-using CodeImp.DoomBuilder.Map;
 using System.Reflection;
+using System.Windows.Forms;
+using CodeImp.DoomBuilder.IO;
+using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Plugins;
 using CodeImp.DoomBuilder.Rendering;
 
@@ -105,8 +106,15 @@ namespace CodeImp.DoomBuilder.Config
         private bool scriptshowfolding; //mxd
         private bool scriptautoshowautocompletion; //mxd
 
-        //mxd
-        private ModelRenderMode gzDrawModelsMode;
+		//mxd. Text labels settings
+		private string textlabelfontname;
+		private int textlabelfontsize;
+		private bool textlabelfontbold;
+		private Font textlabelfont;
+		private bool textlabelfontupdaterequired;
+
+		//mxd
+		private ModelRenderMode gzDrawModelsMode;
 		private LightRenderMode gzDrawLightsMode;
 		private bool gzDrawFog;
         private bool gzDrawSky;
@@ -220,8 +228,14 @@ namespace CodeImp.DoomBuilder.Config
         public bool ScriptShowFolding { get { return scriptshowfolding; } internal set { scriptshowfolding = value; } } //mxd
         public bool ScriptAutoShowAutocompletion { get { return scriptautoshowautocompletion; } internal set { scriptautoshowautocompletion = value; } } //mxd
 
-        //mxd 
-        public ModelRenderMode GZDrawModelsMode { get { return gzDrawModelsMode; } internal set { gzDrawModelsMode = value; } }
+		//mxd. Text labels settings
+		public string TextLabelFontName { get { return textlabelfontname; } internal set { textlabelfontname = value; textlabelfontupdaterequired = true; } }
+		public int TextLabelFontSize { get { return textlabelfontsize; } internal set { textlabelfontsize = value; textlabelfontupdaterequired = true; } }
+		public bool TextLabelFontBold { get { return textlabelfontbold; } internal set { textlabelfontbold = value; textlabelfontupdaterequired = true; } }
+		public Font TextLabelFont { get { return GetTextLabelFont(); } }
+
+		//mxd 
+		public ModelRenderMode GZDrawModelsMode { get { return gzDrawModelsMode; } internal set { gzDrawModelsMode = value; } }
 		public LightRenderMode GZDrawLightsMode { get { return gzDrawLightsMode; } internal set { gzDrawLightsMode = value; } }
 		public bool GZDrawFog { get { return gzDrawFog; } internal set { gzDrawFog = value; } }
         public bool GZDrawSky { get { return gzDrawSky; } internal set { gzDrawSky = value; } }
@@ -344,19 +358,25 @@ namespace CodeImp.DoomBuilder.Config
 				keeptexturefilterfocused = cfg.ReadSetting("keeptexturefilterfocused", true); //mxd
 				splitlinebehavior = (SplitLineBehavior) General.Clamp(cfg.ReadSetting("splitlinebehavior", 0), 0, 3); //mxd
 
-                //mxd. Script editor
-                scriptfontname = cfg.ReadSetting("scriptfontname", "Courier New");
-                scriptfontsize = cfg.ReadSetting("scriptfontsize", 10);
-                scriptfontbold = cfg.ReadSetting("scriptfontbold", false);
-                scriptontop = cfg.ReadSetting("scriptontop", true);
-                scriptautoindent = cfg.ReadSetting("scriptautoindent", true);
-                scriptallmanstyle = cfg.ReadSetting("scriptallmanstyle", false); //mxd
-                scriptusetabs = cfg.ReadSetting("scriptusetabs", true); //mxd
-                scripttabwidth = cfg.ReadSetting("scripttabwidth", 4);
-                scriptautoclosebrackets = cfg.ReadSetting("scriptautoclosebrackets", true); //mxd
-                scriptshowlinenumbers = cfg.ReadSetting("scriptshowlinenumbers", true); //mxd
-                scriptshowfolding = cfg.ReadSetting("scriptshowfolding", true); //mxd
-                scriptautoshowautocompletion = cfg.ReadSetting("scriptautoshowautocompletion", true); //mxd
+				//mxd. Script editor
+				scriptfontname = cfg.ReadSetting("scriptfontname", "Courier New");
+				scriptfontsize = cfg.ReadSetting("scriptfontsize", 10);
+				scriptfontbold = cfg.ReadSetting("scriptfontbold", false);
+				scriptontop = cfg.ReadSetting("scriptontop", true);
+				scriptautoindent = cfg.ReadSetting("scriptautoindent", true);
+				scriptallmanstyle = cfg.ReadSetting("scriptallmanstyle", false);
+				scriptusetabs = cfg.ReadSetting("scriptusetabs", true);
+				scripttabwidth = cfg.ReadSetting("scripttabwidth", 4);
+				scriptautoclosebrackets = cfg.ReadSetting("scriptautoclosebrackets", true);
+				scriptshowlinenumbers = cfg.ReadSetting("scriptshowlinenumbers", true);
+				scriptshowfolding = cfg.ReadSetting("scriptshowfolding", true);
+				scriptautoshowautocompletion = cfg.ReadSetting("scriptautoshowautocompletion", true);
+
+				//mxd. Text labels
+				textlabelfontname = cfg.ReadSetting("textlabelfontname", "Microsoft Sans Serif");
+				textlabelfontsize = cfg.ReadSetting("textlabelfontsize", 10);
+				textlabelfontbold = cfg.ReadSetting("textlabelfontbold", false);
+				textlabelfontupdaterequired = true;
 
                 //mxd 
                 gzDrawModelsMode = (ModelRenderMode)cfg.ReadSetting("gzdrawmodels", (int)ModelRenderMode.ALL);
@@ -461,19 +481,24 @@ namespace CodeImp.DoomBuilder.Config
 			cfg.WriteSetting("keeptexturefilterfocused", keeptexturefilterfocused); //mxd
 			cfg.WriteSetting("splitlinebehavior", (int)splitlinebehavior); //mxd
 
-            //mxd. Script editor
-            cfg.WriteSetting("scriptfontname", scriptfontname);
-            cfg.WriteSetting("scriptfontsize", scriptfontsize);
-            cfg.WriteSetting("scriptfontbold", scriptfontbold);
-            cfg.WriteSetting("scriptontop", scriptontop);
-            cfg.WriteSetting("scriptusetabs", scriptusetabs); //mxd
-            cfg.WriteSetting("scripttabwidth", scripttabwidth);
-            cfg.WriteSetting("scriptautoindent", scriptautoindent);
-            cfg.WriteSetting("scriptallmanstyle", scriptallmanstyle); //mxd
-            cfg.WriteSetting("scriptautoclosebrackets", scriptautoclosebrackets); //mxd
-            cfg.WriteSetting("scriptshowlinenumbers", scriptshowlinenumbers); //mxd
-            cfg.WriteSetting("scriptshowfolding", scriptshowfolding); //mxd
-            cfg.WriteSetting("scriptautoshowautocompletion", scriptautoshowautocompletion); //mxd
+			//mxd. Script editor
+			cfg.WriteSetting("scriptfontname", scriptfontname);
+			cfg.WriteSetting("scriptfontsize", scriptfontsize);
+			cfg.WriteSetting("scriptfontbold", scriptfontbold);
+			cfg.WriteSetting("scriptontop", scriptontop);
+			cfg.WriteSetting("scriptusetabs", scriptusetabs);
+			cfg.WriteSetting("scripttabwidth", scripttabwidth);
+			cfg.WriteSetting("scriptautoindent", scriptautoindent);
+			cfg.WriteSetting("scriptallmanstyle", scriptallmanstyle);
+			cfg.WriteSetting("scriptautoclosebrackets", scriptautoclosebrackets);
+			cfg.WriteSetting("scriptshowlinenumbers", scriptshowlinenumbers);
+			cfg.WriteSetting("scriptshowfolding", scriptshowfolding);
+			cfg.WriteSetting("scriptautoshowautocompletion", scriptautoshowautocompletion);
+
+			//mxd. Text labels
+			cfg.WriteSetting("textlabelfontname", textlabelfontname);
+			cfg.WriteSetting("textlabelfontsize", textlabelfontsize);
+			cfg.WriteSetting("textlabelfontbold", textlabelfontbold);
 
             //mxd
             cfg.WriteSetting("gzdrawmodels", (int)gzDrawModelsMode);
@@ -654,6 +679,17 @@ namespace CodeImp.DoomBuilder.Config
 		internal bool DeleteSetting(string setting) { return cfg.DeleteSetting(setting); }
 		internal bool DeleteSetting(string setting, string pathseperator) { return cfg.DeleteSetting(setting, pathseperator); }
 
+		//mxd
+		private Font GetTextLabelFont()
+		{
+			if(textlabelfontupdaterequired)
+			{
+				textlabelfont = new Font(new FontFamily(textlabelfontname), textlabelfontsize, (textlabelfontbold ? FontStyle.Bold : FontStyle.Regular));
+				textlabelfontupdaterequired = false;
+			}
+			return textlabelfont;
+		}
+
 		#endregion
 
 		#region ================== Default Settings
diff --git a/Source/Core/Rendering/TextLabel.cs b/Source/Core/Rendering/TextLabel.cs
index 12a8a93..72b575c 100644
--- a/Source/Core/Rendering/TextLabel.cs
+++ b/Source/Core/Rendering/TextLabel.cs
@@ -104,7 +104,7 @@ namespace CodeImp.DoomBuilder.Rendering
 		{
 			// Initialize
 			this.text = "";
-			this.font = new Font(General.MainWindow.Font.FontFamily, (float)Math.Round(General.MainWindow.Font.SizeInPoints * 1.25f), FontStyle.Regular); //mxd
+			this.font = General.Settings.TextLabelFont; //mxd
 			this.rect = new RectangleF(0f, 0f, 1f, 1f);
 			this.color = new PixelColor(255, 255, 255, 255);
 			this.backcolor = new PixelColor(255, 0, 0, 0);
diff --git a/Source/Core/Windows/PreferencesForm.Designer.cs b/Source/Core/Windows/PreferencesForm.Designer.cs
index 0bdc326..904624f 100644
--- a/Source/Core/Windows/PreferencesForm.Designer.cs
+++ b/Source/Core/Windows/PreferencesForm.Designer.cs
@@ -1,3 +1,5 @@
+using System.Media;
+
 namespace CodeImp.DoomBuilder.Windows
 {
 	partial class PreferencesForm
@@ -96,6 +98,12 @@ namespace CodeImp.DoomBuilder.Windows
 			this.browsescreenshotsdir = new System.Windows.Forms.Button();
 			this.screenshotsfolderpath = new System.Windows.Forms.TextBox();
 			this.groupBox5 = new System.Windows.Forms.GroupBox();
+			this.groupBox11 = new System.Windows.Forms.GroupBox();
+			this.textlabelfontname = new System.Windows.Forms.ComboBox();
+			this.textlabelfontbold = new System.Windows.Forms.CheckBox();
+			this.label33 = new System.Windows.Forms.Label();
+			this.label34 = new System.Windows.Forms.Label();
+			this.textlabelfontsize = new System.Windows.Forms.ComboBox();
 			this.toolbar_gzdoom = new System.Windows.Forms.CheckBox();
 			this.toolbar_file = new System.Windows.Forms.CheckBox();
 			this.toolbar_testing = new System.Windows.Forms.CheckBox();
@@ -147,9 +155,9 @@ namespace CodeImp.DoomBuilder.Windows
 			this.activethingsalphalabel = new System.Windows.Forms.Label();
 			this.inactivethingsalphalabel = new System.Windows.Forms.Label();
 			this.hiddenthingsalphalabel = new System.Windows.Forms.Label();
-			this.activethingsalpha = new System.Windows.Forms.TrackBar();
-			this.inactivethingsalpha = new System.Windows.Forms.TrackBar();
 			this.hiddenthingsalpha = new System.Windows.Forms.TrackBar();
+			this.inactivethingsalpha = new System.Windows.Forms.TrackBar();
+			this.activethingsalpha = new System.Windows.Forms.TrackBar();
 			this.labelDefaultThingSize = new System.Windows.Forms.Label();
 			this.tbDefaultThingSize = new System.Windows.Forms.TrackBar();
 			this.cbDrawThingsFixedSize = new System.Windows.Forms.CheckBox();
@@ -254,6 +262,7 @@ namespace CodeImp.DoomBuilder.Windows
 			this.tabinterface.SuspendLayout();
 			this.groupBox3.SuspendLayout();
 			this.groupBox5.SuspendLayout();
+			this.groupBox11.SuspendLayout();
 			this.groupBox4.SuspendLayout();
 			this.groupBox2.SuspendLayout();
 			((System.ComponentModel.ISupportInitialize)(this.vertexScale3D)).BeginInit();
@@ -963,6 +972,7 @@ namespace CodeImp.DoomBuilder.Windows
 			// 
 			// tabinterface
 			// 
+			this.tabinterface.Controls.Add(this.groupBox11);
 			this.tabinterface.Controls.Add(this.groupBox3);
 			this.tabinterface.Controls.Add(this.groupBox5);
 			this.tabinterface.Controls.Add(this.groupBox4);
@@ -1030,13 +1040,91 @@ namespace CodeImp.DoomBuilder.Windows
 			this.groupBox5.Controls.Add(this.toolbar_copy);
 			this.groupBox5.Controls.Add(this.toolbar_undo);
 			this.groupBox5.Controls.Add(this.toolbar_script);
-			this.groupBox5.Location = new System.Drawing.Point(345, 321);
+			this.groupBox5.Location = new System.Drawing.Point(345, 271);
 			this.groupBox5.Name = "groupBox5";
-			this.groupBox5.Size = new System.Drawing.Size(331, 152);
+			this.groupBox5.Size = new System.Drawing.Size(331, 137);
 			this.groupBox5.TabIndex = 4;
 			this.groupBox5.TabStop = false;
 			this.groupBox5.Text = " Toolbar Buttons ";
 			// 
+			// groupBox11
+			// 
+			this.groupBox11.Controls.Add(this.textlabelfontname);
+			this.groupBox11.Controls.Add(this.textlabelfontbold);
+			this.groupBox11.Controls.Add(this.label33);
+			this.groupBox11.Controls.Add(this.label34);
+			this.groupBox11.Controls.Add(this.textlabelfontsize);
+			this.groupBox11.Location = new System.Drawing.Point(345, 414);
+			this.groupBox11.Name = "groupBox11";
+			this.groupBox11.Size = new System.Drawing.Size(331, 59);
+			this.groupBox11.TabIndex = 5;
+			this.groupBox11.TabStop = false;
+			this.groupBox11.Text = " Text Labels ";
+			// 
+			// textlabelfontname
+			// 
+			this.textlabelfontname.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+			this.textlabelfontname.FormattingEnabled = true;
+			this.textlabelfontname.Location = new System.Drawing.Point(53, 24);
+			this.textlabelfontname.Name = "textlabelfontname";
+			this.textlabelfontname.Size = new System.Drawing.Size(132, 21);
+			this.textlabelfontname.Sorted = true;
+			this.textlabelfontname.TabIndex = 29;
+			// 
+			// textlabelfontbold
+			// 
+			this.textlabelfontbold.AutoSize = true;
+			this.textlabelfontbold.Location = new System.Drawing.Point(279, 27);
+			this.textlabelfontbold.Name = "textlabelfontbold";
+			this.textlabelfontbold.Size = new System.Drawing.Size(47, 17);
+			this.textlabelfontbold.TabIndex = 31;
+			this.textlabelfontbold.Text = "Bold";
+			this.textlabelfontbold.UseVisualStyleBackColor = true;
+			// 
+			// label33
+			// 
+			this.label33.AutoSize = true;
+			this.label33.Location = new System.Drawing.Point(191, 28);
+			this.label33.Name = "label33";
+			this.label33.Size = new System.Drawing.Size(30, 13);
+			this.label33.TabIndex = 33;
+			this.label33.Text = "Size:";
+			// 
+			// label34
+			// 
+			this.label34.AutoSize = true;
+			this.label34.Location = new System.Drawing.Point(16, 28);
+			this.label34.Name = "label34";
+			this.label34.Size = new System.Drawing.Size(31, 13);
+			this.label34.TabIndex = 32;
+			this.label34.Text = "Font:";
+			// 
+			// textlabelfontsize
+			// 
+			this.textlabelfontsize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+			this.textlabelfontsize.FormattingEnabled = true;
+			this.textlabelfontsize.Items.AddRange(new object[] {
+            "7",
+            "8",
+            "9",
+            "10",
+            "11",
+            "12",
+            "14",
+            "16",
+            "18",
+            "20",
+            "22",
+            "24",
+            "26",
+            "28",
+            "36",
+            "48"});
+			this.textlabelfontsize.Location = new System.Drawing.Point(228, 24);
+			this.textlabelfontsize.Name = "textlabelfontsize";
+			this.textlabelfontsize.Size = new System.Drawing.Size(45, 21);
+			this.textlabelfontsize.TabIndex = 30;
+			// 
 			// toolbar_gzdoom
 			// 
 			this.toolbar_gzdoom.AutoSize = true;
@@ -1201,7 +1289,7 @@ namespace CodeImp.DoomBuilder.Windows
 			this.groupBox2.Controls.Add(this.label4);
 			this.groupBox2.Location = new System.Drawing.Point(345, 8);
 			this.groupBox2.Name = "groupBox2";
-			this.groupBox2.Size = new System.Drawing.Size(331, 307);
+			this.groupBox2.Size = new System.Drawing.Size(331, 257);
 			this.groupBox2.TabIndex = 2;
 			this.groupBox2.TabStop = false;
 			this.groupBox2.Text = " Visual Modes ";
@@ -1210,7 +1298,7 @@ namespace CodeImp.DoomBuilder.Windows
 			// 
 			this.vertexScale3D.BackColor = System.Drawing.SystemColors.Window;
 			this.vertexScale3D.LargeChange = 1;
-			this.vertexScale3D.Location = new System.Drawing.Point(116, 181);
+			this.vertexScale3D.Location = new System.Drawing.Point(116, 151);
 			this.vertexScale3D.Maximum = 15;
 			this.vertexScale3D.Minimum = 2;
 			this.vertexScale3D.Name = "vertexScale3D";
@@ -1223,7 +1311,7 @@ namespace CodeImp.DoomBuilder.Windows
 			// vertexScale3DLabel
 			// 
 			this.vertexScale3DLabel.AutoSize = true;
-			this.vertexScale3DLabel.Location = new System.Drawing.Point(272, 193);
+			this.vertexScale3DLabel.Location = new System.Drawing.Point(272, 163);
 			this.vertexScale3DLabel.Name = "vertexScale3DLabel";
 			this.vertexScale3DLabel.Size = new System.Drawing.Size(33, 13);
 			this.vertexScale3DLabel.TabIndex = 33;
@@ -1232,7 +1320,7 @@ namespace CodeImp.DoomBuilder.Windows
 			// label26
 			// 
 			this.label26.AutoSize = true;
-			this.label26.Location = new System.Drawing.Point(16, 193);
+			this.label26.Location = new System.Drawing.Point(16, 163);
 			this.label26.Name = "label26";
 			this.label26.Size = new System.Drawing.Size(91, 13);
 			this.label26.TabIndex = 32;
@@ -1243,7 +1331,7 @@ namespace CodeImp.DoomBuilder.Windows
 			// 
 			this.viewdistance.BackColor = System.Drawing.SystemColors.Window;
 			this.viewdistance.LargeChange = 2;
-			this.viewdistance.Location = new System.Drawing.Point(116, 230);
+			this.viewdistance.Location = new System.Drawing.Point(116, 190);
 			this.viewdistance.Maximum = 45;
 			this.viewdistance.Minimum = 1;
 			this.viewdistance.Name = "viewdistance";
@@ -1257,7 +1345,7 @@ namespace CodeImp.DoomBuilder.Windows
 			// movespeed
 			// 
 			this.movespeed.BackColor = System.Drawing.SystemColors.Window;
-			this.movespeed.Location = new System.Drawing.Point(116, 131);
+			this.movespeed.Location = new System.Drawing.Point(116, 111);
 			this.movespeed.Maximum = 20;
 			this.movespeed.Minimum = 1;
 			this.movespeed.Name = "movespeed";
@@ -1270,7 +1358,7 @@ namespace CodeImp.DoomBuilder.Windows
 			// mousespeed
 			// 
 			this.mousespeed.BackColor = System.Drawing.SystemColors.Window;
-			this.mousespeed.Location = new System.Drawing.Point(116, 79);
+			this.mousespeed.Location = new System.Drawing.Point(116, 69);
 			this.mousespeed.Maximum = 20;
 			this.mousespeed.Minimum = 1;
 			this.mousespeed.Name = "mousespeed";
@@ -1297,7 +1385,7 @@ namespace CodeImp.DoomBuilder.Windows
 			// viewdistancelabel
 			// 
 			this.viewdistancelabel.AutoSize = true;
-			this.viewdistancelabel.Location = new System.Drawing.Point(272, 242);
+			this.viewdistancelabel.Location = new System.Drawing.Point(272, 203);
 			this.viewdistancelabel.Name = "viewdistancelabel";
 			this.viewdistancelabel.Size = new System.Drawing.Size(42, 13);
 			this.viewdistancelabel.TabIndex = 30;
@@ -1306,7 +1394,7 @@ namespace CodeImp.DoomBuilder.Windows
 			// label13
 			// 
 			this.label13.AutoSize = true;
-			this.label13.Location = new System.Drawing.Point(30, 243);
+			this.label13.Location = new System.Drawing.Point(30, 203);
 			this.label13.Name = "label13";
 			this.label13.Size = new System.Drawing.Size(76, 13);
 			this.label13.TabIndex = 28;
@@ -1315,7 +1403,7 @@ namespace CodeImp.DoomBuilder.Windows
 			// invertyaxis
 			// 
 			this.invertyaxis.AutoSize = true;
-			this.invertyaxis.Location = new System.Drawing.Point(32, 282);
+			this.invertyaxis.Location = new System.Drawing.Point(32, 232);
 			this.invertyaxis.Name = "invertyaxis";
 			this.invertyaxis.Size = new System.Drawing.Size(118, 17);
 			this.invertyaxis.TabIndex = 4;
@@ -1325,7 +1413,7 @@ namespace CodeImp.DoomBuilder.Windows
 			// movespeedlabel
 			// 
 			this.movespeedlabel.AutoSize = true;
-			this.movespeedlabel.Location = new System.Drawing.Point(272, 143);
+			this.movespeedlabel.Location = new System.Drawing.Point(272, 123);
 			this.movespeedlabel.Name = "movespeedlabel";
 			this.movespeedlabel.Size = new System.Drawing.Size(25, 13);
 			this.movespeedlabel.TabIndex = 25;
@@ -1334,7 +1422,7 @@ namespace CodeImp.DoomBuilder.Windows
 			// label11
 			// 
 			this.label11.AutoSize = true;
-			this.label11.Location = new System.Drawing.Point(41, 143);
+			this.label11.Location = new System.Drawing.Point(41, 123);
 			this.label11.Name = "label11";
 			this.label11.Size = new System.Drawing.Size(69, 13);
 			this.label11.TabIndex = 23;
@@ -1343,7 +1431,7 @@ namespace CodeImp.DoomBuilder.Windows
 			// mousespeedlabel
 			// 
 			this.mousespeedlabel.AutoSize = true;
-			this.mousespeedlabel.Location = new System.Drawing.Point(272, 91);
+			this.mousespeedlabel.Location = new System.Drawing.Point(272, 81);
 			this.mousespeedlabel.Name = "mousespeedlabel";
 			this.mousespeedlabel.Size = new System.Drawing.Size(25, 13);
 			this.mousespeedlabel.TabIndex = 22;
@@ -1352,7 +1440,7 @@ namespace CodeImp.DoomBuilder.Windows
 			// label9
 			// 
 			this.label9.AutoSize = true;
-			this.label9.Location = new System.Drawing.Point(35, 91);
+			this.label9.Location = new System.Drawing.Point(35, 81);
 			this.label9.Name = "label9";
 			this.label9.Size = new System.Drawing.Size(74, 13);
 			this.label9.TabIndex = 20;
@@ -1622,6 +1710,15 @@ namespace CodeImp.DoomBuilder.Windows
 			this.appearancegroup1.TabStop = false;
 			this.appearancegroup1.Text = " Additional Options ";
 			// 
+			// activethingsalphalabel
+			// 
+			this.activethingsalphalabel.AutoSize = true;
+			this.activethingsalphalabel.Location = new System.Drawing.Point(337, 97);
+			this.activethingsalphalabel.Name = "activethingsalphalabel";
+			this.activethingsalphalabel.Size = new System.Drawing.Size(21, 13);
+			this.activethingsalphalabel.TabIndex = 48;
+			this.activethingsalphalabel.Text = "0%";
+			// 
 			// inactivethingsalphalabel
 			// 
 			this.inactivethingsalphalabel.AutoSize = true;
@@ -1640,15 +1737,6 @@ namespace CodeImp.DoomBuilder.Windows
 			this.hiddenthingsalphalabel.TabIndex = 47;
 			this.hiddenthingsalphalabel.Text = "0%";
 			// 
-			// activethingsalphalabel
-			// 
-			this.activethingsalphalabel.AutoSize = true;
-			this.activethingsalphalabel.Location = new System.Drawing.Point(337, 97);
-			this.activethingsalphalabel.Name = "activethingsalphalabel";
-			this.activethingsalphalabel.Size = new System.Drawing.Size(21, 13);
-			this.activethingsalphalabel.TabIndex = 48;
-			this.activethingsalphalabel.Text = "0%";
-			// 
 			// hiddenthingsalpha
 			// 
 			this.hiddenthingsalpha.BackColor = System.Drawing.SystemColors.Window;
@@ -2681,6 +2769,8 @@ namespace CodeImp.DoomBuilder.Windows
 			this.groupBox3.PerformLayout();
 			this.groupBox5.ResumeLayout(false);
 			this.groupBox5.PerformLayout();
+			this.groupBox11.ResumeLayout(false);
+			this.groupBox11.PerformLayout();
 			this.groupBox4.ResumeLayout(false);
 			this.groupBox4.PerformLayout();
 			this.groupBox2.ResumeLayout(false);
@@ -2698,9 +2788,9 @@ namespace CodeImp.DoomBuilder.Windows
 			this.tabcolors.PerformLayout();
 			this.appearancegroup1.ResumeLayout(false);
 			this.appearancegroup1.PerformLayout();
-			((System.ComponentModel.ISupportInitialize)(this.activethingsalpha)).EndInit();
-			((System.ComponentModel.ISupportInitialize)(this.inactivethingsalpha)).EndInit();
 			((System.ComponentModel.ISupportInitialize)(this.hiddenthingsalpha)).EndInit();
+			((System.ComponentModel.ISupportInitialize)(this.inactivethingsalpha)).EndInit();
+			((System.ComponentModel.ISupportInitialize)(this.activethingsalpha)).EndInit();
 			((System.ComponentModel.ISupportInitialize)(this.tbDefaultThingSize)).EndInit();
 			((System.ComponentModel.ISupportInitialize)(this.tbDynLightIntensity)).EndInit();
 			((System.ComponentModel.ISupportInitialize)(this.tbDynLightSize)).EndInit();
@@ -2912,5 +3002,11 @@ namespace CodeImp.DoomBuilder.Windows
 		private System.Windows.Forms.Label activethingsalphalabel;
 		private System.Windows.Forms.Label inactivethingsalphalabel;
 		private System.Windows.Forms.Label hiddenthingsalphalabel;
+		private System.Windows.Forms.GroupBox groupBox11;
+		private System.Windows.Forms.Label label34;
+		private System.Windows.Forms.ComboBox textlabelfontname;
+		private System.Windows.Forms.CheckBox textlabelfontbold;
+		private System.Windows.Forms.Label label33;
+		private System.Windows.Forms.ComboBox textlabelfontsize;
 	}
 }
\ No newline at end of file
diff --git a/Source/Core/Windows/PreferencesForm.cs b/Source/Core/Windows/PreferencesForm.cs
index 950b13f..7bb0019 100644
--- a/Source/Core/Windows/PreferencesForm.cs
+++ b/Source/Core/Windows/PreferencesForm.cs
@@ -131,24 +131,59 @@ namespace CodeImp.DoomBuilder.Windows
             scriptshowlinenumbers.Checked = General.Settings.ScriptShowLineNumbers; //mxd
             scriptautoshowautocompletion.Checked = General.Settings.ScriptAutoShowAutocompletion; //mxd
 
-            // Fill script fonts list
-            scriptfontname.BeginUpdate();
-            foreach (FontFamily ff in FontFamily.Families)
-				scriptfontname.Items.Add(ff.Name);
+			// Fill script fonts list
+			scriptfontname.BeginUpdate();
+			foreach(FontFamily ff in FontFamily.Families) scriptfontname.Items.Add(ff.Name);
 			scriptfontname.EndUpdate();
 			
 			// Select script font name
 			for(int i = 0; i < scriptfontname.Items.Count; i++)
 			{
 				if(string.Compare(scriptfontname.Items[i].ToString(), General.Settings.ScriptFontName, true) == 0)
+				{
 					scriptfontname.SelectedIndex = i;
+					break; //mxd
+				}
 			}
 
 			// Select script font size
 			for(int i = 0; i < scriptfontsize.Items.Count; i++)
 			{
-				if(string.Compare(scriptfontsize.Items[i].ToString(), General.Settings.ScriptFontSize.ToString(CultureInfo.InvariantCulture), true) == 0)
+				string fs = General.Settings.ScriptFontSize.ToString(CultureInfo.InvariantCulture); //mxd
+				if(string.Compare(scriptfontsize.Items[i].ToString(), fs, true) == 0)
+				{
 					scriptfontsize.SelectedIndex = i;
+					break; //mxd
+				}
+			}
+
+			//mxd. Text labels
+			textlabelfontbold.Checked = General.Settings.TextLabelFontBold;
+
+			//mxd. Fill text labels fonts list
+			textlabelfontname.BeginUpdate();
+			foreach(FontFamily ff in FontFamily.Families) textlabelfontname.Items.Add(ff.Name);
+			textlabelfontname.EndUpdate();
+
+			//mxd. Select text labels font name
+			for(int i = 0; i < textlabelfontname.Items.Count; i++)
+			{
+				if(string.Compare(textlabelfontname.Items[i].ToString(), General.Settings.TextLabelFontName, true) == 0)
+				{
+					textlabelfontname.SelectedIndex = i;
+					break;
+				}
+			}
+
+			//mxd. Select text labels font size
+			for(int i = 0; i < textlabelfontsize.Items.Count; i++)
+			{
+				string fs = General.Settings.TextLabelFontSize.ToString(CultureInfo.InvariantCulture);
+				if(string.Compare(textlabelfontsize.Items[i].ToString(), fs, true) == 0)
+				{
+					textlabelfontsize.SelectedIndex = i;
+					break;
+				}
 			}
 			
 			// Fill actions list with categories
@@ -330,6 +365,14 @@ namespace CodeImp.DoomBuilder.Windows
             int fontsize;
 			if(!int.TryParse(scriptfontsize.Text, out fontsize)) fontsize = 10;
 			General.Settings.ScriptFontSize = fontsize;
+
+			//mxd. Text label settings
+			General.Settings.TextLabelFontBold = textlabelfontbold.Checked;
+			General.Settings.TextLabelFontName = textlabelfontname.Text;
+
+			//mxd. Text label font size
+			if(!int.TryParse(textlabelfontsize.Text, out fontsize)) fontsize = 16;
+			General.Settings.TextLabelFontSize = fontsize;
 			
 			// Apply control keys to actions
 			foreach(ListViewItem item in allactionitems) //mxd
diff --git a/Source/Core/Windows/PreferencesForm.resx b/Source/Core/Windows/PreferencesForm.resx
index bf66c2d..cd7a997 100644
--- a/Source/Core/Windows/PreferencesForm.resx
+++ b/Source/Core/Windows/PreferencesForm.resx
@@ -170,4 +170,7 @@ they will be replaced with tabs/spaces.</value>
   <metadata name="browseScreenshotsFolderDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>114, 17</value>
   </metadata>
+  <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>50</value>
+  </metadata>
 </root>
\ No newline at end of file