Index: code/branches/cpp11_v2/src/orxonox/gametypes/Gametype.h
===================================================================
--- code/branches/cpp11_v2/src/orxonox/gametypes/Gametype.h	(revision 11004)
+++ code/branches/cpp11_v2/src/orxonox/gametypes/Gametype.h	(revision 11005)
@@ -45,19 +45,16 @@
 namespace orxonox
 {
-    namespace PlayerState
-    {
-        enum Value
-        {
-            Uninitialized,
-            Joined,
-            Alive,
-            Dead
-        };
-    }
+    enum class PlayerState
+    {
+        Uninitialized,
+        Joined,
+        Alive,
+        Dead
+    };
 
     struct Player
     {
         PlayerInfo* info_;
-        PlayerState::Value state_;
+        PlayerState state_;
         int frags_;
         int killed_;
Index: code/branches/cpp11_v2/src/orxonox/items/MultiStateEngine.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/items/MultiStateEngine.cc	(revision 11004)
+++ code/branches/cpp11_v2/src/orxonox/items/MultiStateEngine.cc	(revision 11005)
@@ -124,14 +124,14 @@
                 this->state_ = 0;
                 if (this->getShip()->isBoosting() && forward)
-                    this->state_ = Boost;
+                    this->state_ = EngineState::Boost;
                 else if (forward && !this->state_) // this->state_ == Boost
-                    this->state_ = Normal;
+                    this->state_ = EngineState::Normal;
                 else if (direction.z > 0.0 && velocity.z < 0.0)
-                    this->state_ = Brake;
+                    this->state_ = EngineState::Brake;
                 else
-                    this->state_ = Idle;
-
-                if (this->state_ == Idle && this->getSpeedAdd() > 0)
-                    this->state_ = Normal;
+                    this->state_ = EngineState::Idle;
+
+                if (this->state_ == EngineState::Idle && this->getSpeedAdd() > 0)
+                    this->state_ = EngineState::Normal;
             }
 
@@ -141,33 +141,33 @@
 
                 float pitch = velocity.length();
-                if (this->state_ & Normal)
+                if (this->state_ & EngineState::Normal)
                     defEngineSndNormal_->setPitch(clamp(pitch/MAX_VELOCITY_NORMAL + 1, 0.5f, 2.0f));
-                if (this->state_ & Boost)
+                if (this->state_ & EngineState::Boost)
                     defEngineSndBoost_->setPitch(clamp(pitch/MAX_VELOCITY_BOOST + 1, 0.5f, 2.0f));
 
-                if (changes & Idle)
-                {
-                    lua_pushboolean(this->lua_->getInternalLuaState(), this->state_ & Idle);
+                if (changes & EngineState::Idle)
+                {
+                    lua_pushboolean(this->lua_->getInternalLuaState(), this->state_ & EngineState::Idle);
                     lua_setglobal(this->lua_->getInternalLuaState(), "idle");
                 }
-                if (changes & Normal)
-                {
-                    lua_pushboolean(this->lua_->getInternalLuaState(), this->state_ & Normal);
+                if (changes & EngineState::Normal)
+                {
+                    lua_pushboolean(this->lua_->getInternalLuaState(), this->state_ & EngineState::Normal);
                     lua_setglobal(this->lua_->getInternalLuaState(), "normal");
-                    if (this->state_ & Normal)
+                    if (this->state_ & EngineState::Normal)
                         defEngineSndNormal_->play();
                     else
                         defEngineSndNormal_->stop();
                 }
-                if (changes & Brake)
-                {
-                    lua_pushboolean(this->lua_->getInternalLuaState(), this->state_ & Brake);
+                if (changes & EngineState::Brake)
+                {
+                    lua_pushboolean(this->lua_->getInternalLuaState(), this->state_ & EngineState::Brake);
                     lua_setglobal(this->lua_->getInternalLuaState(), "brake");
                 }
-                if (changes & Boost)
-                {
-                    lua_pushboolean(this->lua_->getInternalLuaState(), this->state_ & Boost);
+                if (changes & EngineState::Boost)
+                {
+                    lua_pushboolean(this->lua_->getInternalLuaState(), this->state_ & EngineState::Boost);
                     lua_setglobal(this->lua_->getInternalLuaState(), "boost");
-                    if (this->state_ & Boost)
+                    if (this->state_ & EngineState::Boost)
                         defEngineSndBoost_->play();
                     else
Index: code/branches/cpp11_v2/src/orxonox/items/MultiStateEngine.h
===================================================================
--- code/branches/cpp11_v2/src/orxonox/items/MultiStateEngine.h	(revision 11004)
+++ code/branches/cpp11_v2/src/orxonox/items/MultiStateEngine.h	(revision 11005)
@@ -41,10 +41,10 @@
     {
         public:
-            enum EngineState
+            struct EngineState
             {
-                Idle    = 1,
-                Normal  = 2,
-                Brake   = 4,
-                Boost   = 8
+                static constexpr int Idle    = 1;
+                static constexpr int Normal  = 2;
+                static constexpr int Brake   = 4;
+                static constexpr int Boost   = 8;
             };
 
Index: code/branches/cpp11_v2/src/orxonox/items/PartDestructionEvent.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/items/PartDestructionEvent.cc	(revision 11004)
+++ code/branches/cpp11_v2/src/orxonox/items/PartDestructionEvent.cc	(revision 11005)
@@ -98,14 +98,14 @@
         {
             switch (this->targetParam_) {
-            case shieldhealth:
+            case TargetParam::shieldhealth:
                 this->parent_->getParent()->setShieldHealth(operate(this->parent_->getParent()->getShieldHealth()));
                 break;
-            case boostpower:
+            case TargetParam::boostpower:
                 this->parent_->getParent()->setInitialBoostPower(operate(this->parent_->getParent()->getInitialBoostPower()));
                 break;
-            case boostpowerrate:
+            case TargetParam::boostpowerrate:
                 this->parent_->getParent()->setBoostPowerRate(operate(this->parent_->getParent()->getBoostPowerRate()));
                 break;
-            case rotationthrust:
+            case TargetParam::rotationthrust:
                 this->parent_->getParent()->setRotationThrust(operate(this->parent_->getParent()->getRotationThrust()));
                 break;
@@ -120,14 +120,14 @@
         {
             switch (this->targetParam_) {
-            case null:
+            case TargetParam::null:
                 this->parent_->getParent()->getEngineByName(targetName_)->destroy();
                 break;
-            case boostfactor:
+            case TargetParam::boostfactor:
                 this->parent_->getParent()->getEngineByName(targetName_)->setBoostFactor(operate(this->parent_->getParent()->getEngineByName(targetName_)->getBoostFactor()));
                 break;
-            case speedfront:
+            case TargetParam::speedfront:
                 this->parent_->getParent()->getEngineByName(targetName_)->setMaxSpeedFront(operate(this->parent_->getParent()->getEngineByName(targetName_)->getMaxSpeedFront()));
                 break;
-            case accelerationfront:
+            case TargetParam::accelerationfront:
                 this->parent_->getParent()->getEngineByName(targetName_)->setAccelerationFront(operate(this->parent_->getParent()->getEngineByName(targetName_)->getAccelerationFront()));
                 break;
@@ -142,5 +142,5 @@
         {
             switch (this->targetParam_) {
-            case null:
+            case TargetParam::null:
                 if (!this->parent_->getParent()->getShipPartByName(targetName_))
                     return;
@@ -214,20 +214,20 @@
             if (param == "NULL")
             {
-                this->targetParam_ = null;
+                this->targetParam_ = TargetParam::null;
                 return;
             }
             if (param == "boostfactor")
             {
-                this->targetParam_ = boostfactor;
+                this->targetParam_ = TargetParam::boostfactor;
                 return;
             }
             if (param == "speedfront")
             {
-                this->targetParam_ = speedfront;
+                this->targetParam_ = TargetParam::speedfront;
                 return;
             }
             if (param == "accelerationfront")
             {
-                this->targetParam_ = accelerationfront;
+                this->targetParam_ = TargetParam::accelerationfront;
                 return;
             }
@@ -244,20 +244,20 @@
             if (param == "shieldhealth")
             {
-                this->targetParam_ = shieldhealth;
+                this->targetParam_ = TargetParam::shieldhealth;
                 return;
             }
             if (param == "boostpower")
             {
-                this->targetParam_ = boostpower;
+                this->targetParam_ = TargetParam::boostpower;
                 return;
             }
             if (param == "boostpowerrate")
             {
-                this->targetParam_ = boostpowerrate;
+                this->targetParam_ = TargetParam::boostpowerrate;
                 return;
             }
             if (param == "rotationthrust")
             {
-                this->targetParam_ = rotationthrust;
+                this->targetParam_ = TargetParam::rotationthrust;
                 return;
             }
@@ -271,5 +271,5 @@
             if (param == "NULL")
             {
-                this->targetParam_ = null;
+                this->targetParam_ = TargetParam::null;
                 return;
             }
Index: code/branches/cpp11_v2/src/orxonox/items/PartDestructionEvent.h
===================================================================
--- code/branches/cpp11_v2/src/orxonox/items/PartDestructionEvent.h	(revision 11004)
+++ code/branches/cpp11_v2/src/orxonox/items/PartDestructionEvent.h	(revision 11005)
@@ -82,5 +82,5 @@
                     List of all allowed parameters.
                 */
-            enum TargetParam
+            enum class TargetParam
             {
                 shieldhealth,
Index: code/branches/cpp11_v2/src/orxonox/overlays/OrxonoxOverlay.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/overlays/OrxonoxOverlay.cc	(revision 11004)
+++ code/branches/cpp11_v2/src/orxonox/overlays/OrxonoxOverlay.cc	(revision 11005)
@@ -94,5 +94,5 @@
         this->angle_ = Degree(0.0);
         this->bCorrectAspect_ = false;
-        this->rotState_ = Horizontal;
+        this->rotState_ = RotationState::Horizontal;
         this->angleChanged(); // updates all other values as well
 
@@ -259,15 +259,15 @@
             {
                 tempAspect = 1.0f / this->windowAspectRatio_;
-                rotState_ = Vertical;
+                rotState_ = RotationState::Vertical;
             }
             else if (angle > 179 || angle < 1)
             {
                 tempAspect = this->windowAspectRatio_;
-                rotState_ = Horizontal;
+                rotState_ = RotationState::Horizontal;
             }
             else
             {
                 tempAspect = 1.0f;
-                rotState_ = Inbetween;
+                rotState_ = RotationState::Inbetween;
             }
 
Index: code/branches/cpp11_v2/src/orxonox/overlays/OrxonoxOverlay.h
===================================================================
--- code/branches/cpp11_v2/src/orxonox/overlays/OrxonoxOverlay.h	(revision 11004)
+++ code/branches/cpp11_v2/src/orxonox/overlays/OrxonoxOverlay.h	(revision 11005)
@@ -79,5 +79,5 @@
             and in between is everything else.
         */
-        enum RotationState
+        enum class RotationState
         {
             Horizontal,
Index: code/branches/cpp11_v2/src/orxonox/sound/BaseSound.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/sound/BaseSound.cc	(revision 11004)
+++ code/branches/cpp11_v2/src/orxonox/sound/BaseSound.cc	(revision 11005)
@@ -49,5 +49,5 @@
         , volume_(0.7)
         , bLooping_(false)
-        , state_(Stopped)
+        , state_(State::Stopped)
         , pitch_ (1.0)
     {
@@ -63,5 +63,5 @@
     BaseSound::~BaseSound()
     {
-        if (this->state_ != Stopped)
+        if (this->state_ != State::Stopped)
             this->stop();
         // Release buffer
@@ -83,5 +83,5 @@
     void BaseSound::doPlay()
     {
-        this->state_ = Playing;
+        this->state_ = State::Playing;
         if (GameMode::playsSound() && this->getSourceState() != AL_PLAYING && this->soundBuffer_ != nullptr)
         {
@@ -102,5 +102,5 @@
     bool BaseSound::doStop()
     {
-        this->state_ = Stopped;
+        this->state_ = State::Stopped;
         if (alIsSource(this->audioSource_))
         {
@@ -123,5 +123,5 @@
         if (this->isStopped())
             return;
-        this->state_ = Paused;
+        this->state_ = State::Paused;
         if (alIsSource(this->audioSource_))
             alSourcePause(this->audioSource_);
@@ -256,10 +256,10 @@
         else // No source acquired so far, but might be set to playing or paused
         {
-            State state = static_cast<State>(this->state_); // save
+            State state = this->state_; // save
             if (this->isPlaying() || this->isPaused())
                 doPlay();
-            if (state == Paused)
-            {
-                this->state_ = Paused;
+            if (state == State::Paused)
+            {
+                this->state_ = State::Paused;
                 doPause();
             }
@@ -271,11 +271,11 @@
         switch (this->state_)
         {
-            case Playing:
+            case State::Playing:
                 this->play();
                 break;
-            case Paused:
+            case State::Paused:
                 this->pause();
                 break;
-            case Stopped:
+            case State::Stopped:
             default:
                 this->stop();
Index: code/branches/cpp11_v2/src/orxonox/sound/BaseSound.h
===================================================================
--- code/branches/cpp11_v2/src/orxonox/sound/BaseSound.h	(revision 11004)
+++ code/branches/cpp11_v2/src/orxonox/sound/BaseSound.h	(revision 11005)
@@ -54,7 +54,7 @@
         virtual void pause() { this->doPause(); }
 
-        bool isPlaying() const { return this->state_ == Playing; }
-        bool isPaused()  const { return this->state_ == Paused; }
-        bool isStopped() const { return this->state_ == Stopped; }
+        bool isPlaying() const { return this->state_ == State::Playing; }
+        bool isPaused()  const { return this->state_ == State::Paused; }
+        bool isStopped() const { return this->state_ == State::Stopped; }
 
         virtual void setSource(const std::string& source);
@@ -76,5 +76,5 @@
 
     protected:
-        enum State
+        enum class State
         {
             Stopped,
@@ -111,5 +111,5 @@
         float           volume_;
         bool            bLooping_;
-        uint8_t         state_;       // This Variable is actually of type State
+        State           state_;       // This Variable is actually of type State
         float           pitch_;
 
Index: code/branches/cpp11_v2/src/orxonox/sound/WorldSound.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/sound/WorldSound.cc	(revision 11004)
+++ code/branches/cpp11_v2/src/orxonox/sound/WorldSound.cc	(revision 11005)
@@ -58,5 +58,5 @@
         registerVariable(bLooping_, ObjectDirection::ToClient, new NetworkCallback<WorldSound>(this, &WorldSound::loopingChanged));
         registerVariable(pitch_,    ObjectDirection::ToClient, new NetworkCallback<WorldSound>(this, &WorldSound::pitchChanged));
-        registerVariable((uint8_t&)(BaseSound::state_), ObjectDirection::ToClient, new NetworkCallback<WorldSound>(this, &WorldSound::stateChanged));
+        registerVariable(BaseSound::state_, ObjectDirection::ToClient, new NetworkCallback<WorldSound>(this, &WorldSound::stateChanged));
     }
 
Index: code/branches/cpp11_v2/src/orxonox/worldentities/pawns/TeamBaseMatchBase.h
===================================================================
--- code/branches/cpp11_v2/src/orxonox/worldentities/pawns/TeamBaseMatchBase.h	(revision 11004)
+++ code/branches/cpp11_v2/src/orxonox/worldentities/pawns/TeamBaseMatchBase.h	(revision 11005)
@@ -36,13 +36,10 @@
 namespace orxonox
 {
-    namespace BaseState
+    enum class BaseState
     {
-        enum Value
-        {
-            Uncontrolled,
-            ControlTeam1,
-            ControlTeam2,
-        };
-    }
+        Uncontrolled,
+        ControlTeam1,
+        ControlTeam2,
+    };
 
 
@@ -58,5 +55,5 @@
 
             // Set the state of a base to whatever the argument of the function is
-            void setState(BaseState::Value state)
+            void setState(BaseState state)
             {
                 this->state_ = state;
@@ -66,5 +63,5 @@
 
             // Get the state of a base as a return value
-            BaseState::Value getState() const
+            BaseState getState() const
             {
                 return this->state_;
@@ -75,5 +72,5 @@
             void changeTeamColour();
 
-            BaseState::Value state_;
+            BaseState state_;
     };
 }
