diff --git a/apps/opencs/model/settings/setting.cpp b/apps/opencs/model/settings/setting.cpp
index cf2b8178f0..374462ac26 100644
--- a/apps/opencs/model/settings/setting.cpp
+++ b/apps/opencs/model/settings/setting.cpp
@@ -2,8 +2,8 @@
 #include "support.hpp"
 
 CSMSettings::Setting::Setting(SettingType typ, const QString &settingName,
-                             const QString &pageName)
-    : mIsEditorSetting (true)
+    const QString &pageName, const QString& label)
+: mIsEditorSetting (true)
 {
     buildDefaultSetting();
 
@@ -17,6 +17,7 @@ CSMSettings::Setting::Setting(SettingType typ, const QString &settingName,
     setProperty (Property_SettingType, QVariant (settingType).toString());
     setProperty (Property_Page, pageName);
     setProperty (Property_Name, settingName);
+    setProperty (Property_Label, label.isEmpty() ? settingName : label);
 }
 
 void CSMSettings::Setting::buildDefaultSetting()
@@ -364,6 +365,16 @@ bool CSMSettings::Setting::wrapping() const
     return (property (Property_Wrapping).at(0) == "true");
 }
 
+void CSMSettings::Setting::setLabel (const QString& label)
+{
+    setProperty (Property_Label, label);
+}
+
+QString CSMSettings::Setting::getLabel() const
+{
+    return property (Property_Label).at (0);
+}
+
 void CSMSettings::Setting::setProperty (SettingProperty prop, bool value)
 {
     setProperty (prop, QStringList() << QVariant (value).toString());
diff --git a/apps/opencs/model/settings/setting.hpp b/apps/opencs/model/settings/setting.hpp
index 962d0a438a..bc542dbd03 100644
--- a/apps/opencs/model/settings/setting.hpp
+++ b/apps/opencs/model/settings/setting.hpp
@@ -29,8 +29,8 @@ namespace CSMSettings
 
     public:
 
-        explicit Setting(SettingType typ, const QString &settingName,
-                         const QString &pageName);
+        Setting(SettingType typ, const QString &settingName,
+            const QString &pageName, const QString& label = "");
 
         void addProxy (const Setting *setting, const QStringList &vals);
         void addProxy (const Setting *setting, const QList <QStringList> &list);
@@ -131,6 +131,10 @@ namespace CSMSettings
         void setWidgetWidth (int value);
         int widgetWidth() const;
 
+        /// This is the text the user gets to see.
+        void setLabel (const QString& label);
+        QString getLabel() const;
+
         ///returns the specified property value
         QStringList property (SettingProperty prop) const;
 
diff --git a/apps/opencs/model/settings/support.hpp b/apps/opencs/model/settings/support.hpp
index 1e122a214e..15ad341918 100644
--- a/apps/opencs/model/settings/support.hpp
+++ b/apps/opencs/model/settings/support.hpp
@@ -36,12 +36,13 @@ namespace CSMSettings
         Property_TicksAbove = 20,
         Property_TicksBelow = 21,
         Property_StyleSheet = 22,
+        Property_Label = 23,
 
         //Stringlists should always be the last items
-        Property_DefaultValues = 23,
-        Property_DeclaredValues = 24,
-        Property_DefinedValues = 25,
-        Property_Proxies = 26
+        Property_DefaultValues = 24,
+        Property_DeclaredValues = 25,
+        Property_DefinedValues = 26,
+        Property_Proxies = 27
     };
 
     ///Basic setting widget types.
diff --git a/apps/opencs/model/settings/usersettings.cpp b/apps/opencs/model/settings/usersettings.cpp
index ad2942eacf..cb4003afaf 100644
--- a/apps/opencs/model/settings/usersettings.cpp
+++ b/apps/opencs/model/settings/usersettings.cpp
@@ -52,49 +52,49 @@ void CSMSettings::UserSettings::buildSettingModelDefaults()
 
     declareSection ("Objects");
     {
-        Setting *numLights = createSetting (Type_SpinBox, "num_lights");
+        Setting *numLights = createSetting (Type_SpinBox, "num_lights", "num_lights");
         numLights->setDefaultValue(8);
         numLights->setRange (0, 100);
 
-        Setting *shaders = createSetting (Type_CheckBox, "shaders");
+        Setting *shaders = createSetting (Type_CheckBox, "shaders", "Enable Shaders");
         shaders->setDefaultValue("true");
-        shaders->setSpecialValueText("Enable Shaders");
+//        shaders->setSpecialValueText("Enable Shaders");
     }
 
     declareSection ("Scene");
     {
-        Setting *fastFactor = createSetting (Type_SpinBox, "fast factor");
+        Setting *fastFactor = createSetting (Type_SpinBox, "fast factor", "fast factor");
         fastFactor->setDefaultValue(4);
         fastFactor->setRange (1, 100);
 
-        Setting *farClipDist = createSetting (Type_DoubleSpinBox, "far clip distance");
+        Setting *farClipDist = createSetting (Type_DoubleSpinBox, "far clip distance", "far clip distance");
         farClipDist->setDefaultValue(300000);
         farClipDist->setRange (0, 1000000);
 
-        Setting *timerStart = createSetting (Type_SpinBox, "timer start");
+        Setting *timerStart = createSetting (Type_SpinBox, "timer start", "timer start");
         timerStart->setDefaultValue(20);
         timerStart->setRange (1, 100);
     }
 
     declareSection ("SubView");
     {
-        Setting *maxSubView = createSetting (Type_SpinBox, "max subviews");
+        Setting *maxSubView = createSetting (Type_SpinBox, "max subviews", "max subviews");
         maxSubView->setDefaultValue(256);
         maxSubView->setRange (1, 256);
 
-        Setting *minWidth = createSetting (Type_SpinBox, "minimum width");
+        Setting *minWidth = createSetting (Type_SpinBox, "minimum width", "minimum width");
         minWidth->setDefaultValue(325);
         minWidth->setRange (50, 10000);
 
-        Setting *reuse = createSetting (Type_CheckBox, "reuse");
+        Setting *reuse = createSetting (Type_CheckBox, "reuse", "Reuse SubView");
         reuse->setDefaultValue("true");
-        reuse->setSpecialValueText("Reuse SubView");
+//        reuse->setSpecialValueText("Reuse SubView");
     }
 
     declareSection ("Window Size");
     {
-        Setting *width = createSetting (Type_LineEdit, "Width");
-        Setting *height = createSetting (Type_LineEdit, "Height");
+        Setting *width = createSetting (Type_LineEdit, "Width", "Width");
+        Setting *height = createSetting (Type_LineEdit, "Height", "Height");
 
         width->setDefaultValues (QStringList() << "1024");
         height->setDefaultValues (QStringList() << "768");
@@ -105,7 +105,7 @@ void CSMSettings::UserSettings::buildSettingModelDefaults()
         /*
          *Create the proxy setting for predefined values
          */
-        Setting *preDefined = createSetting (Type_ComboBox, "Pre-Defined");
+        Setting *preDefined = createSetting (Type_ComboBox, "Pre-Defined", "Pre-Defined");
 
         preDefined->setEditorSetting (false);
 
@@ -131,9 +131,9 @@ void CSMSettings::UserSettings::buildSettingModelDefaults()
         QStringList values = QStringList()
                             << defaultValue << "Icon Only" << "Text Only";
 
-        Setting *rsd = createSetting (Type_RadioButton, "Record Status Display");
+        Setting *rsd = createSetting (Type_RadioButton, "Record Status Display", "Record Status Display");
 
-        Setting *ritd = createSetting (Type_RadioButton, "Referenceable ID Type Display");
+        Setting *ritd = createSetting (Type_RadioButton, "Referenceable ID Type Display", "Referenceable ID Type Display");
 
         rsd->setDeclaredValues (values);
         ritd->setDeclaredValues (values);
@@ -144,7 +144,7 @@ void CSMSettings::UserSettings::buildSettingModelDefaults()
         QString defaultValue = "None";
         QStringList values = QStringList()
                         << defaultValue << "MSAA 2" << "MSAA 4" << "MSAA 8" << "MSAA 16";
-        Setting *antialiasing = createSetting (Type_SpinBox, "antialiasing");
+        Setting *antialiasing = createSetting (Type_SpinBox, "antialiasing", "antialiasing");
         antialiasing->setDeclaredValues (values);
     }
 
@@ -486,9 +486,9 @@ CSMSettings::SettingPageMap CSMSettings::UserSettings::settingPageMap() const
 }
 
 CSMSettings::Setting *CSMSettings::UserSettings::createSetting
-        (CSMSettings::SettingType type, const QString &name)
+        (CSMSettings::SettingType type, const QString &name, const QString& label)
 {
-    Setting *setting = new Setting (type, name, mSection);
+    Setting *setting = new Setting (type, name, mSection, label);
 
     // set useful defaults
     int row = 1;
@@ -523,6 +523,9 @@ CSMSettings::Setting *CSMSettings::UserSettings::createSetting
     if (type==Type_CheckBox)
         setting->setDeclaredValues(QStringList() << "true" << "false");
 
+    if (type==Type_CheckBox)
+        setting->setSpecialValueText (setting->getLabel());
+
     //add declaration to the model
     mSettings.append (setting);
 
diff --git a/apps/opencs/model/settings/usersettings.hpp b/apps/opencs/model/settings/usersettings.hpp
index ae73ff0a62..9629f6cb54 100644
--- a/apps/opencs/model/settings/usersettings.hpp
+++ b/apps/opencs/model/settings/usersettings.hpp
@@ -85,7 +85,8 @@ namespace CSMSettings {
         void buildSettingModelDefaults();
 
         ///add a new setting to the model and return it
-        Setting *createSetting (CSMSettings::SettingType type, const QString &name);
+        Setting *createSetting (CSMSettings::SettingType type, const QString &name,
+            const QString& label);
 
         /// Set the section for createSetting calls.
         ///
diff --git a/apps/opencs/view/settings/view.cpp b/apps/opencs/view/settings/view.cpp
index f95bb5c035..dbe2244a62 100644
--- a/apps/opencs/view/settings/view.cpp
+++ b/apps/opencs/view/settings/view.cpp
@@ -17,7 +17,7 @@ CSVSettings::View::View(CSMSettings::Setting *setting,
       mIsMultiValue (setting->isMultiValue()),
       mViewKey (setting->page() + '/' + setting->name()),
       mSerializable (setting->serializable()),
-      Frame(true, setting->name(), parent)
+      Frame(true, setting->getLabel(), parent)
 {
     setObjectName (setting->name());
     buildView();