Index: code/branches/shipSelection/data/gui/scripts/ShipSelectionMenu.lua
===================================================================
--- code/branches/shipSelection/data/gui/scripts/ShipSelectionMenu.lua	(revision 9101)
+++ code/branches/shipSelection/data/gui/scripts/ShipSelectionMenu.lua	(revision 9127)
@@ -16,4 +16,9 @@
 
    P.shipList = {}
+
+  --for line in io.lines("../levels/templates/.shipmodels") do  orxonox.execute("orxout user_warning " .. line) end
+  for line in io.lines("../levels/templates/.shipmodels") do  
+	P.shipList[#P.shipList+1] = string.lower(line)
+  end 
    --[[for f in io.lines("../levels/templates/.shipmodels") do
         if selectedlevel:hasShip(f) then
@@ -151,10 +156,10 @@
     end
 end
---]]
+
 function P.ShipSelectionStartButton_clicked(e)
 
     if selectedlevel ~= nil then
-	selectedlevel:selectShip("meinModell")
-        --orxonox.execute("startGame " .. selectedlevel:getXMLFilename())
+	selectedlevel:selectShip(P.ShipSelectionGetSelectedLevel())
+        orxonox.execute("startGame " .. "_temp.oxw")
         hideAllMenuSheets()
     else
Index: code/branches/shipSelection/data/gui/scripts/SingleplayerMenu.lua
===================================================================
--- code/branches/shipSelection/data/gui/scripts/SingleplayerMenu.lua	(revision 9101)
+++ code/branches/shipSelection/data/gui/scripts/SingleplayerMenu.lua	(revision 9127)
@@ -47,5 +47,6 @@
     while index < size do
         level = orxonox.LevelManager:getInstance():getAvailableLevelListItem(index)
-        if level ~= nil then
+        if (level ~= nil and level:getXMLFilename() ~= "_temp.oxw") then
+	    --os.execute("echo " .. level:getXMLFilename() .." >> ~/outputorx")
             local levelXMLFilename = level:getXMLFilename()
             -- create an imageset for each screenshot
Index: code/branches/shipSelection/data/levels/tutorial.oxw
===================================================================
--- code/branches/shipSelection/data/levels/tutorial.oxw	(revision 9101)
+++ code/branches/shipSelection/data/levels/tutorial.oxw	(revision 9127)
@@ -4,5 +4,5 @@
  tags = "tutorial, shipselection"
  screenshot = "codingtutorial.png"
- startingships = "spaceshipGhost, spaceshipPirate, spaceshipSpacecruiser"
+ startingships = "spaceshipghost, spaceshippirate, spaceshipspacecruiser"
 />
 
@@ -11,4 +11,6 @@
   include("stats.oxo")
   include("templates/spaceshipAssff.oxt")
+  include("templates/spaceshipGhost.oxt")
+  include("templates/spaceshipSpacecruiser.oxt")
   include("templates/lodInformation.oxt")
 ?>
Index: code/branches/shipSelection/src/libraries/core/Loader.cc
===================================================================
--- code/branches/shipSelection/src/libraries/core/Loader.cc	(revision 9101)
+++ code/branches/shipSelection/src/libraries/core/Loader.cc	(revision 9127)
@@ -222,5 +222,5 @@
 
             orxout(verbose, context::loader) << "Namespace-tree:" << '\n' << rootNamespace->toString("  ") << endl;
-
+			
             return true;
         }
Index: code/branches/shipSelection/src/orxonox/LevelInfo.h
===================================================================
--- code/branches/shipSelection/src/orxonox/LevelInfo.h	(revision 9101)
+++ code/branches/shipSelection/src/orxonox/LevelInfo.h	(revision 9127)
@@ -152,18 +152,30 @@
 
         private:
+
 	    inline void changeShip (const std::string& model) {
-                //HACK: Read Level XML File, find "shipselection", replace with ship model
-                std::string text;
- 		std::ifstream myLevel ("test.txt");
-		std::ofstream tempLevel ("test2.txt");
-		while(!myLevel.eof())
-		{
-			std::string buff;
-			std::getline(myLevel, buff);
-			tempLevel.write(buff.c_str(), buff.length());
-		}
-		myLevel.close();
-		tempLevel.close();
-		orxout(user_status) << "done" << endl;
+	        static std::string shipSelectionTag = "shipselection";
+        	//HACK: Read Level XML File, find "shipselection", replace with ship model
+        	std::string levelPath = "../levels/";
+        	levelPath.append(this->getXMLFilename());
+        	std::string tempPath = "../levels/";
+        	tempPath.append("_temp.oxw");
+        	orxout(user_status) << levelPath << endl;
+        	orxout(user_status) << tempPath << endl;
+        	std::ifstream myLevel (levelPath.c_str());
+			std::ofstream tempLevel (tempPath.c_str());
+			while(!myLevel.eof())
+			{
+				std::string buff;
+				std::getline(myLevel, buff);
+				std::string pawndesignString = "pawndesign=";
+				size_t found = buff.find(pawndesignString.append(shipSelectionTag)); 
+				if (found!= std::string::npos) 
+					buff = buff.substr(0, found + 11) + model + buff.substr(found+11+shipSelectionTag.length(), std::string::npos);
+				tempLevel.write(buff.c_str(), buff.length());
+				tempLevel << std::endl;
+			}
+			myLevel.close();
+			tempLevel.close();
+			orxout(user_status) << "done" << endl;
 	    } 
             void tagsUpdated(void); //!< Updates the comma-seperated string of all tags, if the set of tags has changed.
Index: code/branches/shipSelection/src/orxonox/LevelManager.cc
===================================================================
--- code/branches/shipSelection/src/orxonox/LevelManager.cc	(revision 9101)
+++ code/branches/shipSelection/src/orxonox/LevelManager.cc	(revision 9127)
@@ -256,5 +256,5 @@
         {
             // TODO: Replace with tag?
-            if (it->find("old/") != 0)
+            if (it->find("old/") != 0 )
             {
                 LevelInfoItem* info = NULL;
