Index: code/branches/cpp11_v2/src/libraries/core/XMLPort.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/XMLPort.h	(revision 11006)
+++ code/branches/cpp11_v2/src/libraries/core/XMLPort.h	(revision 11007)
@@ -324,14 +324,14 @@
     {
     public:
-        enum ParseResult
+        enum class ParseResult
         {
-            PR_not_started,
-            PR_finished,
-            PR_waiting_for_default_values
+            not_started,
+            finished,
+            waiting_for_default_values
         };
 
         public:
             XMLPortParamContainer()
-                { this->parseResult_ = PR_not_started; }
+                { this->parseResult_ = ParseResult::not_started; }
             virtual ~XMLPortParamContainer() = default;
 
@@ -415,12 +415,12 @@
                             this->loadexecutor_->parse(object, attributeValue, &error, ",");
                             if (!error || (mode  == XMLPort::ExpandObject))
-                                this->parseResult_ = PR_finished;
+                                this->parseResult_ = ParseResult::finished;
                             else
-                                this->parseResult_ = PR_waiting_for_default_values;
+                                this->parseResult_ = ParseResult::waiting_for_default_values;
                         }
                         else if (mode == XMLPort::ExpandObject)
-                            this->parseResult_ = PR_finished;
+                            this->parseResult_ = ParseResult::finished;
                         else
-                            this->parseResult_ = PR_waiting_for_default_values;
+                            this->parseResult_ = ParseResult::waiting_for_default_values;
                     }
                     catch (ticpp::Exception& ex)
@@ -449,5 +449,5 @@
             XMLPortParamContainer& portIfWaitingForDefaultValues(const ParseResult& result, const ParseParams& params)
             {
-                if (result == PR_waiting_for_default_values)
+                if (result == ParseResult::waiting_for_default_values)
                     return this->port(this->owner_, params);
                 else
Index: code/branches/cpp11_v2/src/libraries/core/command/ConsoleCommand.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/command/ConsoleCommand.h	(revision 11006)
+++ code/branches/cpp11_v2/src/libraries/core/command/ConsoleCommand.h	(revision 11007)
@@ -60,21 +60,18 @@
     }
 
-    namespace AccessLevel
+    /**
+        @brief Possible access levels: A command can only be executed if the program is in the state which is requested by the access level.
+    */
+    enum class AccessLevel
     {
-        /**
-            @brief Possible access levels: A command can only be executed if the program is in the state which is requested by the access level.
-        */
-        enum Enum
-        {
-            All,
-            Standalone,
-            Master,
-            Server,
-            Client,
-            Online,
-            Offline,
-            None
-        };
-    }
+        All,
+        Standalone,
+        Master,
+        Server,
+        Client,
+        Online,
+        Offline,
+        None
+    };
 
     /**
@@ -249,5 +246,5 @@
 
                     /// Changes the access level of the command.
-                    inline ConsoleCommandManipulator& accessLevel(AccessLevel::Enum level)
+                    inline ConsoleCommandManipulator& accessLevel(AccessLevel level)
                         { if (this->command_) { this->command_->accessLevel(level); } return *this; }
 
@@ -332,8 +329,8 @@
 
             /// Changes the access level of the command.
-            inline ConsoleCommand& accessLevel(AccessLevel::Enum level)
+            inline ConsoleCommand& accessLevel(AccessLevel level)
                 { this->accessLevel_ = level; return *this; }
             /// Returns the access level of the command.
-            inline AccessLevel::Enum getAccessLevel() const
+            inline AccessLevel getAccessLevel() const
                 { return this->accessLevel_; }
 
@@ -394,5 +391,5 @@
             bool bActive_;                                                  ///< True if the command should be active (it can still be inactive, for example if the function is missing)
             bool bHidden_;                                                  ///< True if the command is hidden (it is still executable, but not visible in the list of available commands)
-            AccessLevel::Enum accessLevel_;                                 ///< The access level (the state of the game in which you can access the command)
+            AccessLevel accessLevel_;                                       ///< The access level (the state of the game in which you can access the command)
             std::string baseName_;                                          ///< The name that was first assigned to the command
             std::vector<CommandName> names_;                                ///< All names and aliases of this command
Index: code/branches/cpp11_v2/src/libraries/core/command/Executor.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/command/Executor.h	(revision 11006)
+++ code/branches/cpp11_v2/src/libraries/core/command/Executor.h	(revision 11007)
@@ -147,5 +147,5 @@
                 { return this->functor_->hasReturnvalue(); }
             /// Returns the type of the wrapped function (static or member).
-            inline Functor::Type::Enum getType() const
+            inline Functor::Type getType() const
                 { return this->functor_->getType(); }
             /// Returns the name of the type of a parameter with given index (the first parameter has index 0).
Index: code/branches/cpp11_v2/src/libraries/core/command/Functor.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/command/Functor.h	(revision 11006)
+++ code/branches/cpp11_v2/src/libraries/core/command/Functor.h	(revision 11007)
@@ -176,12 +176,9 @@
     {
         public:
-            struct Type
-            {
-                /// Defines the type of a function (static or member)
-                enum Enum
-                {
-                    Static,
-                    Member
-                };
+            /// Defines the type of a function (static or member)
+            enum class Type
+            {
+                Static,
+                Member
             };
 
@@ -196,5 +193,5 @@
 
             /// Returns the type of the function: static or member.
-            virtual Type::Enum getType() const = 0;
+            virtual Type getType() const = 0;
             /// Returns the number of parameters of the function.
             virtual unsigned int getParamCount() const = 0;
@@ -262,5 +259,5 @@
 
             // see Functor::getType()
-            virtual inline Functor::Type::Enum getType() const override
+            virtual inline Functor::Type getType() const override
                 { return Functor::Type::Member; }
 
@@ -339,5 +336,5 @@
 
             // see Functor::getType()
-            virtual inline Functor::Type::Enum getType() const override
+            virtual inline Functor::Type getType() const override
                 { return Functor::Type::Static; }
 
Index: code/branches/cpp11_v2/src/libraries/core/command/IOConsolePOSIX.cc
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/command/IOConsolePOSIX.cc	(revision 11006)
+++ code/branches/cpp11_v2/src/libraries/core/command/IOConsolePOSIX.cc	(revision 11007)
@@ -46,13 +46,10 @@
     IOConsole* IOConsole::singletonPtr_s = nullptr;
 
-    namespace EscapeMode
-    {
-        enum Value
-        {
-            None,
-            First,
-            Second
-        };
-    }
+    enum class EscapeMode
+    {
+        None,
+        First,
+        Second
+    };
 
     IOConsole::IOConsole()
@@ -90,5 +87,5 @@
         std::cout.flush();
         if (!this->origCout_.str().empty())
-            this->shell_->addOutput(this->origCout_.str(), Shell::Cout);
+            this->shell_->addOutput(this->origCout_.str(), Shell::LineType::Cout);
         // Erase input and status lines
         this->cout_ << "\033[1G\033[J";
@@ -111,5 +108,5 @@
         unsigned char c;
         std::string escapeSequence;
-        EscapeMode::Value escapeMode = EscapeMode::None;
+        EscapeMode escapeMode = EscapeMode::None;
         while (std::cin.good())
         {
@@ -231,5 +228,5 @@
         if (!this->origCout_.str().empty())
         {
-            this->shell_->addOutput(this->origCout_.str(), Shell::Cout);
+            this->shell_->addOutput(this->origCout_.str(), Shell::LineType::Cout);
             this->origCout_.str("");
         }
@@ -241,25 +238,25 @@
         switch (type)
         {
-            case Shell::Message:
-            case Shell::DebugOutput:     this->cout_ << "\033[0m"; break;
-
-            case Shell::UserError:       this->cout_ << "\033[91m"; break;
-            case Shell::UserWarning:     this->cout_ << "\033[93m"; break;
-            case Shell::UserStatus:      this->cout_ << "\033[92m"; break;
-            case Shell::UserInfo:        this->cout_ << "\033[96m"; break;
-
-            case Shell::InternalError:   this->cout_ << "\033[31m"; break;
-            case Shell::InternalWarning: this->cout_ << "\033[33m"; break;
-            case Shell::InternalStatus:  this->cout_ << "\033[32m"; break;
-            case Shell::InternalInfo:    this->cout_ << "\033[36m"; break;
-
-            case Shell::Verbose:         this->cout_ << "\033[94m"; break;
-            case Shell::VerboseMore:     this->cout_ << "\033[34m"; break;
-            case Shell::VerboseUltra:    this->cout_ << "\033[34m"; break;
-
-            case Shell::Command:         this->cout_ << "\033[95m"; break;
-            case Shell::Hint:            this->cout_ << "\033[35m"; break;
-
-            default:                     this->cout_ << "\033[37m"; break;
+            case Shell::LineType::Message:
+            case Shell::LineType::DebugOutput:     this->cout_ << "\033[0m"; break;
+
+            case Shell::LineType::UserError:       this->cout_ << "\033[91m"; break;
+            case Shell::LineType::UserWarning:     this->cout_ << "\033[93m"; break;
+            case Shell::LineType::UserStatus:      this->cout_ << "\033[92m"; break;
+            case Shell::LineType::UserInfo:        this->cout_ << "\033[96m"; break;
+
+            case Shell::LineType::InternalError:   this->cout_ << "\033[31m"; break;
+            case Shell::LineType::InternalWarning: this->cout_ << "\033[33m"; break;
+            case Shell::LineType::InternalStatus:  this->cout_ << "\033[32m"; break;
+            case Shell::LineType::InternalInfo:    this->cout_ << "\033[36m"; break;
+
+            case Shell::LineType::Verbose:         this->cout_ << "\033[94m"; break;
+            case Shell::LineType::VerboseMore:     this->cout_ << "\033[34m"; break;
+            case Shell::LineType::VerboseUltra:    this->cout_ << "\033[34m"; break;
+
+            case Shell::LineType::Command:         this->cout_ << "\033[95m"; break;
+            case Shell::LineType::Hint:            this->cout_ << "\033[35m"; break;
+
+            default:                               this->cout_ << "\033[37m"; break;
         }
 
@@ -384,5 +381,5 @@
     void IOConsole::executed()
     {
-        this->shell_->addOutput(this->promptString_ + this->shell_->getInput(), Shell::Command);
+        this->shell_->addOutput(this->promptString_ + this->shell_->getInput(), Shell::LineType::Command);
     }
 
Index: code/branches/cpp11_v2/src/libraries/core/command/IOConsoleWindows.cc
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/command/IOConsoleWindows.cc	(revision 11006)
+++ code/branches/cpp11_v2/src/libraries/core/command/IOConsoleWindows.cc	(revision 11007)
@@ -97,5 +97,5 @@
         std::cout.flush();
         if (!this->origCout_.str().empty())
-            this->shell_->addOutput(this->origCout_.str(), Shell::Cout);
+            this->shell_->addOutput(this->origCout_.str(), Shell::LineType::Cout);
 
         this->shell_->unregisterListener(this);
@@ -190,5 +190,5 @@
         if (!this->origCout_.str().empty())
         {
-            this->shell_->addOutput(this->origCout_.str(), Shell::Cout);
+            this->shell_->addOutput(this->origCout_.str(), Shell::LineType::Cout);
             this->origCout_.str("");
         }
@@ -202,25 +202,25 @@
         switch (type)
         {
-            case Shell::Message:
-            case Shell::DebugOutput:     colour = FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE; break;
-
-            case Shell::UserError:       colour = FOREGROUND_INTENSITY | FOREGROUND_RED | 0                | 0              ; break;
-            case Shell::UserWarning:     colour = FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | 0              ; break;
-            case Shell::UserStatus:      colour = FOREGROUND_INTENSITY | 0              | FOREGROUND_GREEN | 0              ; break;
-            case Shell::UserInfo:        colour = FOREGROUND_INTENSITY | 0              | FOREGROUND_GREEN | FOREGROUND_BLUE; break;
-
-            case Shell::InternalError:   colour = 0                    | FOREGROUND_RED | 0                | 0              ; break;
-            case Shell::InternalWarning: colour = 0                    | FOREGROUND_RED | FOREGROUND_GREEN | 0              ; break;
-            case Shell::InternalStatus:  colour = 0                    | 0              | FOREGROUND_GREEN | 0              ; break;
-            case Shell::InternalInfo:    colour = 0                    | 0              | FOREGROUND_GREEN | FOREGROUND_BLUE; break;
-
-            case Shell::Verbose:         colour = FOREGROUND_INTENSITY | 0              | 0                | FOREGROUND_BLUE; break;
-            case Shell::VerboseMore:     colour = FOREGROUND_INTENSITY | 0              | 0                | FOREGROUND_BLUE; break;
-            case Shell::VerboseUltra:    colour = FOREGROUND_INTENSITY | 0              | 0                | FOREGROUND_BLUE; break;
-
-            case Shell::Command:         colour = FOREGROUND_INTENSITY | FOREGROUND_RED | 0                | FOREGROUND_BLUE; break;
-            case Shell::Hint:            colour = 0                    | FOREGROUND_RED | 0                | FOREGROUND_BLUE; break;
-
-            default:                     colour = 0                    | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE; break;
+            case Shell::LineType::Message:
+            case Shell::LineType::DebugOutput:     colour = FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE; break;
+
+            case Shell::LineType::UserError:       colour = FOREGROUND_INTENSITY | FOREGROUND_RED | 0                | 0              ; break;
+            case Shell::LineType::UserWarning:     colour = FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | 0              ; break;
+            case Shell::LineType::UserStatus:      colour = FOREGROUND_INTENSITY | 0              | FOREGROUND_GREEN | 0              ; break;
+            case Shell::LineType::UserInfo:        colour = FOREGROUND_INTENSITY | 0              | FOREGROUND_GREEN | FOREGROUND_BLUE; break;
+
+            case Shell::LineType::InternalError:   colour = 0                    | FOREGROUND_RED | 0                | 0              ; break;
+            case Shell::LineType::InternalWarning: colour = 0                    | FOREGROUND_RED | FOREGROUND_GREEN | 0              ; break;
+            case Shell::LineType::InternalStatus:  colour = 0                    | 0              | FOREGROUND_GREEN | 0              ; break;
+            case Shell::LineType::InternalInfo:    colour = 0                    | 0              | FOREGROUND_GREEN | FOREGROUND_BLUE; break;
+
+            case Shell::LineType::Verbose:         colour = FOREGROUND_INTENSITY | 0              | 0                | FOREGROUND_BLUE; break;
+            case Shell::LineType::VerboseMore:     colour = FOREGROUND_INTENSITY | 0              | 0                | FOREGROUND_BLUE; break;
+            case Shell::LineType::VerboseUltra:    colour = FOREGROUND_INTENSITY | 0              | 0                | FOREGROUND_BLUE; break;
+
+            case Shell::LineType::Command:         colour = FOREGROUND_INTENSITY | FOREGROUND_RED | 0                | FOREGROUND_BLUE; break;
+            case Shell::LineType::Hint:            colour = 0                    | FOREGROUND_RED | 0                | FOREGROUND_BLUE; break;
+
+            default:                               colour = 0                    | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE; break;
         }
 
@@ -331,5 +331,5 @@
     void IOConsole::executed()
     {
-        this->shell_->addOutput(this->promptString_ + this->shell_->getInput(), Shell::Command);
+        this->shell_->addOutput(this->promptString_ + this->shell_->getInput(), Shell::LineType::Command);
     }
 
Index: code/branches/cpp11_v2/src/libraries/core/command/Shell.cc
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/command/Shell.cc	(revision 11006)
+++ code/branches/cpp11_v2/src/libraries/core/command/Shell.cc	(revision 11007)
@@ -268,5 +268,5 @@
     {
         // yes it was - push the new line to the list
-        this->outputLines_.push_front(std::make_pair(line, static_cast<LineType>(type)));
+        this->outputLines_.push_front(std::make_pair(line, type));
 
         // adjust the scroll position if needed
@@ -381,7 +381,7 @@
         const std::string& result = CommandExecutor::query(this->inputBuffer_->get(), &error);
         if (error)
-            this->addOutput("Error: Can't execute \"" + this->inputBuffer_->get() + "\", " + CommandExecutor::getErrorDescription(error) + ". (Shell)", UserError);
+            this->addOutput("Error: Can't execute \"" + this->inputBuffer_->get() + "\", " + CommandExecutor::getErrorDescription(error) + ". (Shell)", LineType::UserError);
         else if (result != "")
-            this->addOutput(result, Result);
+            this->addOutput(result, LineType::Result);
 
         this->clearInput();
@@ -392,5 +392,5 @@
     {
         this->inputBuffer_->set(CommandExecutor::evaluate(this->inputBuffer_->get()).complete());
-        this->addOutput(CommandExecutor::evaluate(this->inputBuffer_->get()).hint(), Hint);
+        this->addOutput(CommandExecutor::evaluate(this->inputBuffer_->get()).hint(), LineType::Hint);
 
         this->inputChanged();
Index: code/branches/cpp11_v2/src/libraries/core/command/Shell.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/command/Shell.h	(revision 11006)
+++ code/branches/cpp11_v2/src/libraries/core/command/Shell.h	(revision 11007)
@@ -88,5 +88,5 @@
         public:
             /// Defines the type of a line of text in the Shell - some types depend on the output level, others are of internal use.
-            enum LineType
+            enum class LineType
             {
                 DebugOutput     = debug_output,
@@ -133,6 +133,6 @@
             LineList::const_iterator getEndIterator() const;
 
-            void addOutput(const std::string& text, LineType type = DebugOutput);
-            void addLine(const std::string& line, LineType type = DebugOutput);
+            void addOutput(const std::string& text, LineType type = LineType::DebugOutput);
+            void addLine(const std::string& line, LineType type = LineType::DebugOutput);
             void clearOutput();
 
