Index: code/branches/lod/data/levels/gametype_underattack.oxw
===================================================================
--- code/branches/lod/data/levels/gametype_underattack.oxw	(revision 6852)
+++ code/branches/lod/data/levels/gametype_underattack.oxw	(revision 6877)
@@ -11,4 +11,9 @@
  gametype     = UnderAttack
 >
+
+  <lodinformation>
+    <MeshLodInformation mesh=Carrier.mesh lodQuality=1 />
+  </lodinformation>
+  
   <Scene
    ambientlight = "0.5, 0.5, 0.5"
Index: code/branches/lod/src/orxonox/Level.cc
===================================================================
--- code/branches/lod/src/orxonox/Level.cc	(revision 6852)
+++ code/branches/lod/src/orxonox/Level.cc	(revision 6877)
@@ -72,7 +72,7 @@
         XMLPortParam(Level, "description", setDescription, getDescription, xmlelement, mode);
         XMLPortParam(Level, "gametype", setGametypeString, getGametypeString, xmlelement, mode).defaultValues("Gametype");
-
-        XMLPortObjectExtended(Level, BaseObject, "", addObject, getObject, xmlelement, mode, true, false);            
+            
         XMLPortObject(Level, MeshLodInformation, "lodinformation", addLodInfo, getLodInfo, xmlelement, mode);
+        XMLPortObjectExtended(Level, BaseObject, "", addObject, getObject, xmlelement, mode, true, false);
 }
 
@@ -141,12 +141,8 @@
     }
     
-    //LoD
     void Level::addLodInfo(MeshLodInformation* lodInformation)
     {
-//        std::pair<std::map<std::string,MeshLodInformation*>::iterator,bool> it 
-//            = new std::pair<lodInformation->getMeshName(),lodInformation>;
         std::string meshName = lodInformation->getMeshName();
         this->lodInformation_.insert(std::make_pair(meshName,lodInformation));
-        //this->lodInformation_[std::make_pair<meshName,lodInformation>);
     }
 
@@ -157,15 +153,4 @@
         
         return 0;
-        
-        
-        /*
-        unsigned int i = 0;
-        for (std::map<MeshLodInformation*>::const_iterator it = this->lodInformation_.begin(); it != this->lodInformation_.end(); ++it)
-        {
-            if (i == index)
-                return (*it);
-            ++i;
-        }
-        return 0;*/
     }
 
Index: code/branches/lod/src/orxonox/graphics/MeshLodInformation.cc
===================================================================
--- code/branches/lod/src/orxonox/graphics/MeshLodInformation.cc	(revision 6852)
+++ code/branches/lod/src/orxonox/graphics/MeshLodInformation.cc	(revision 6877)
@@ -53,6 +53,6 @@
         SUPER(MeshLodInformation, XMLPort, xmlelement, mode);
 
-        XMLPortParam(MeshLodInformation, "lodQuality", setLodLevel, getLodLevel, xmlelement, mode).defaultValues(5);
         XMLPortParam(MeshLodInformation, "mesh", setMeshSource, getMeshSource, xmlelement, mode);
+        XMLPortParam(MeshLodInformation, "lodQuality", setLodLevel, getLodLevel, xmlelement, mode);
     }
     
Index: code/branches/lod/src/orxonox/graphics/Model.cc
===================================================================
--- code/branches/lod/src/orxonox/graphics/Model.cc	(revision 6852)
+++ code/branches/lod/src/orxonox/graphics/Model.cc	(revision 6877)
@@ -61,5 +61,4 @@
         SUPER(Model, XMLPort, xmlelement, mode);
         
-        //LoD
         XMLPortParam(Model, "lodLevel", setLodLevel, getLodLevel, xmlelement, mode).defaultValues(5);
         
@@ -103,11 +102,11 @@
                     &&this->meshSrc_!="laserbeam.mesh")
                 {
-                    float scaleFactor = getBiggestScale(this->getScale3D());
-                    BaseObject* creatorPtr = this->getCreator();
-					//TODO Doesn't work...
-                    while(creatorPtr!=0&&typeid(creatorPtr)!=typeid(new WorldEntity*))
+                    float scaleFactor = 1;
+                    BaseObject* creatorPtr = this;
+                    
+                    while(creatorPtr!=NULL&&orxonox_cast<WorldEntity*>(creatorPtr))
                     {
                         scaleFactor *= getBiggestScale(((WorldEntity*) creatorPtr)->getScale3D());
-                        creatorPtr = this->getCreator();
+                        creatorPtr = creatorPtr->getCreator();
                     }
                     
@@ -115,4 +114,5 @@
                     
                     MeshLodInformation* lodInfo = level_->getLodInfo(this->meshSrc_);
+                    
                     if(lodInfo!=0)
                         setLodLevel(lodInfo->getLodLevel());
@@ -126,5 +126,5 @@
 #endif
 
-                    if(lodLevel_>0)
+                    if(lodLevel_>0&&lodLevel_<=5)
                     {
                         float factor = scaleFactor*5/lodLevel_;
@@ -143,5 +143,5 @@
                         distList.push_back(330.0f*factor);
 
-                        float reductionValue = 0.2f;
+                        float reductionValue = 0.15f;
 
                         
@@ -151,5 +151,11 @@
                     else
                     {
-                        COUT(0)<<"LodLevel not set because lodLevel("<<lodLevel_<<") was < 0."<<std::endl;
+                        std::string what;
+                        if(lodLevel_>5)
+                            what = ">5";
+                        else
+                            what = "<0";
+                        
+                        COUT(0)<<"LodLevel not set because lodLevel("<<lodLevel_<<") was "<<what<<"."<<std::endl;
                     }
                 }
