Index: code/branches/core5/src/modules/pong/PongBall.cc
===================================================================
--- code/branches/core5/src/modules/pong/PongBall.cc	(revision 5880)
+++ code/branches/core5/src/modules/pong/PongBall.cc	(revision 5881)
@@ -41,5 +41,9 @@
     const float PongBall::MAX_REL_Z_VELOCITY = 1.5;
 
-    PongBall::PongBall(BaseObject* creator) : MovableEntity(creator)
+    PongBall::PongBall(BaseObject* creator)
+        : MovableEntity(creator)
+        , sidesound_(NULL)
+        , batsound_(NULL)
+        , scoresound_(NULL)
     {
         RegisterObject(PongBall);
@@ -54,12 +58,25 @@
         this->registerVariables();
 
-        this->sidesound_ = new SoundBase(this);
-        this->sidesound_->loadFile("sounds/pong_side.wav");
-
-        this->batsound_ = new SoundBase(this);
-        this->batsound_->loadFile("sounds/pong_bat.wav");
-
-        this->scoresound_ = new SoundBase(this);
-        this->scoresound_->loadFile("sounds/pong_score.wav");
+        if (GameMode::playsSound())
+        {
+            this->sidesound_ = new SoundBase(this);
+            this->sidesound_->loadFile("sounds/pong_side.wav");
+
+            this->batsound_ = new SoundBase(this);
+            this->batsound_->loadFile("sounds/pong_bat.wav");
+
+            this->scoresound_ = new SoundBase(this);
+            this->scoresound_->loadFile("sounds/pong_score.wav");
+        }
+    }
+
+    PongBall::~PongBall()
+    {
+        if (this->sidesound_)
+            delete this->sidesound_;
+        if (this->batsound_)
+            delete this->batsound_;
+        if (this->scoresound_)
+            delete this->scoresound_;
     }
 
@@ -87,5 +104,6 @@
             {
                 velocity.z = -velocity.z;
-                this->sidesound_->play();
+                if (GameMode::playsSound())
+                    this->sidesound_->play();
 
                 if (position.z > this->fieldHeight_ / 2)
@@ -109,5 +127,6 @@
                             velocity.x = -velocity.x;
                             velocity.z = distance * distance * sgn(distance) * PongBall::MAX_REL_Z_VELOCITY * this->speed_;
-                            this->batsound_->play();
+                            if (GameMode::playsSound())
+                                this->batsound_->play();
                         }
                         else if (position.x > this->fieldWidth_ / 2 * (1 + this->relMercyOffset_))
@@ -116,5 +135,6 @@
                             {
                                 this->getGametype()->playerScored(this->bat_[0]->getPlayer());
-                                this->scoresound_->play();
+                                if (GameMode::playsSound())
+                                    this->scoresound_->play();
                                 return;
                             }
@@ -129,5 +149,6 @@
                             velocity.x = -velocity.x;
                             velocity.z = distance * distance * sgn(distance) * PongBall::MAX_REL_Z_VELOCITY * this->speed_;
-                            this->batsound_->play();
+                            if (GameMode::playsSound())
+                                this->batsound_->play();
                         }
                         else if (position.x < -this->fieldWidth_ / 2 * (1 + this->relMercyOffset_))
@@ -135,5 +156,6 @@
                             if (this->getGametype() && this->bat_[1])
                             {
-                                this->scoresound_->play();
+                                if (GameMode::playsSound())
+                                    this->scoresound_->play();
                                 this->getGametype()->playerScored(this->bat_[1]->getPlayer());
                                 return;
@@ -157,5 +179,6 @@
           {
             velocity.z = -velocity.z;
-            this->sidesound_->play();
+            if (GameMode::playsSound())
+                this->sidesound_->play();
 
             if (position.z > this->fieldHeight_ / 2)
@@ -178,5 +201,6 @@
                   position.x = this->fieldWidth_ / 2;
                   velocity.x = -velocity.x;
-                  this->batsound_->play();
+                  if (GameMode::playsSound())
+                    this->batsound_->play();
                   velocity.z = distance * distance * sgn(distance) * PongBall::MAX_REL_Z_VELOCITY * this->speed_;
                 }
@@ -189,5 +213,6 @@
                   position.x = -this->fieldWidth_ / 2;
                   velocity.x = -velocity.x;
-                  this->batsound_->play();
+                  if (GameMode::playsSound())
+                    this->batsound_->play();
                   velocity.z = distance * distance * sgn(distance) * PongBall::MAX_REL_Z_VELOCITY * this->speed_;
                 }
Index: code/branches/core5/src/modules/pong/PongBall.h
===================================================================
--- code/branches/core5/src/modules/pong/PongBall.h	(revision 5880)
+++ code/branches/core5/src/modules/pong/PongBall.h	(revision 5881)
@@ -41,5 +41,5 @@
         public:
             PongBall(BaseObject* creator);
-            virtual ~PongBall() {}
+            virtual ~PongBall();
 
             virtual void tick(float dt);
Index: code/branches/core5/src/orxonox/sound/SoundManager.cc
===================================================================
--- code/branches/core5/src/orxonox/sound/SoundManager.cc	(revision 5880)
+++ code/branches/core5/src/orxonox/sound/SoundManager.cc	(revision 5881)
@@ -73,5 +73,4 @@
         else
             COUT(4) << "OpenAL ALUT supported MIME types: " << str << std::endl;
-        ThrowException(InitialisationFailed, "Just testing");
 
         GameMode::setPlaysSound(true);
