Index: code/trunk/src/orxonox/objects/Level.cc
===================================================================
--- code/trunk/src/orxonox/objects/Level.cc	(revision 3057)
+++ code/trunk/src/orxonox/objects/Level.cc	(revision 3060)
@@ -41,4 +41,5 @@
 #include "objects/gametypes/Gametype.h"
 #include "overlays/OverlayGroup.h"
+#include "sound/SoundBase.h"
 
 #include "util/Math.h"
@@ -68,4 +69,7 @@
             if (this->xmlfile_)
                 Loader::unload(this->xmlfile_);
+
+            if(this->ambientsound_ != NULL)
+                delete this->ambientsound_;
         }
     }
@@ -77,4 +81,6 @@
         XMLPortParam(Level, "description", setDescription, getDescription, xmlelement, mode);
         XMLPortParam(Level, "gametype", setGametypeString, getGametypeString, xmlelement, mode).defaultValues("Gametype");
+
+        XMLPortParamLoadOnly(Level, "ambientsound", loadAmbientSound, xmlelement, mode);
 
         XMLPortObjectExtended(Level, BaseObject, "", addObject, getObject, xmlelement, mode, true, false);
@@ -148,4 +154,19 @@
     }
 
+    void Level::loadAmbientSound(const std::string& filename)
+    {
+        if(filename == "") return;
+        else
+        {
+            if(this->ambientsound_ == NULL)
+            {
+                this->ambientsound_ = new SoundBase();
+            }
+
+            this->ambientsound_->loadFile(filename);
+            this->ambientsound_->play(true);
+        }
+    }
+
     void Level::playerEntered(PlayerInfo* player)
     {
Index: code/trunk/src/orxonox/objects/Level.h
===================================================================
--- code/trunk/src/orxonox/objects/Level.h	(revision 3057)
+++ code/trunk/src/orxonox/objects/Level.h	(revision 3060)
@@ -51,4 +51,6 @@
                 { return this->description_; }
 
+            void loadAmbientSound(const std::string& filename);
+
             void playerEntered(PlayerInfo* player);
             void playerLeft(PlayerInfo* player);
@@ -69,4 +71,6 @@
             XMLFile*               xmlfile_;
             std::list<BaseObject*> objects_;
+
+            SoundBase*             ambientsound_;
     };
 }
Index: code/trunk/src/orxonox/objects/items/Engine.cc
===================================================================
--- code/trunk/src/orxonox/objects/items/Engine.cc	(revision 3057)
+++ code/trunk/src/orxonox/objects/items/Engine.cc	(revision 3060)
@@ -36,4 +36,5 @@
 #include "objects/worldentities/pawns/SpaceShip.h"
 #include "tools/Shader.h"
+#include "sound/SoundBase.h"
 
 namespace orxonox
@@ -66,4 +67,6 @@
         this->setConfigValues();
         this->registerVariables();
+
+        this->sound_ = NULL;
     }
 
@@ -76,4 +79,7 @@
             if (this->boostBlur_)
                 delete this->boostBlur_;
+
+            if(this->sound_ != NULL)
+                delete this->sound_;
         }
     }
@@ -95,4 +101,6 @@
         XMLPortParam(Engine, "accelerationleftright", setAccelerationLeftRight, setAccelerationLeftRight, xmlelement, mode);
         XMLPortParam(Engine, "accelerationupdown",    setAccelerationUpDown,    setAccelerationUpDown,    xmlelement, mode);
+
+        XMLPortParamLoadOnly(Engine, "sound", loadSound, xmlelement, mode);
     }
 
@@ -219,4 +227,5 @@
     {
         this->ship_ = ship;
+
         if (ship)
         {
@@ -230,4 +239,7 @@
                 this->boostBlur_ = 0;
             }
+
+            if(this->sound_ != NULL)
+                this->sound_->attachToEntity(ship);
         }
     }
@@ -240,3 +252,18 @@
             return Vector3::ZERO;
     }
+
+    void Engine::loadSound(const std::string filename)
+    {
+        if(filename == "") return;
+        else
+        {
+            if(this->sound_ == NULL)
+            {
+                this->sound_ = new SoundBase(this->ship_);
+            }
+
+            this->sound_->loadFile(filename);
+            this->sound_->play(true);
+        }
+    }
 }
Index: code/trunk/src/orxonox/objects/items/Engine.h
===================================================================
--- code/trunk/src/orxonox/objects/items/Engine.h	(revision 3057)
+++ code/trunk/src/orxonox/objects/items/Engine.h	(revision 3060)
@@ -107,4 +107,6 @@
             virtual const Vector3& getDirection() const;
 
+            void loadSound(const std::string filename);
+
         private:
             void networkcallback_shipID();
@@ -129,4 +131,6 @@
             Shader* boostBlur_;
             float blurStrength_;
+
+            SoundBase* sound_;
     };
 }
