Index: branches/water/src/story_entities/game_world.cc
===================================================================
--- branches/water/src/story_entities/game_world.cc	(revision 8259)
+++ branches/water/src/story_entities/game_world.cc	(revision 8260)
@@ -135,5 +135,5 @@
   }
   imageSelector->showAll();
-  imageSelector->setAbsCoor2D(200, 30);
+  imageSelector->setAbsCoor2D(200, 200);
     OrxGui::GLGuiHandler::getInstance()->activateCursor();
 
@@ -580,10 +580,53 @@
       mw =  dynamic_cast<MappedWater*>(*it);
 
-      // prepare for reflection rendering
-      mw->activateReflection();
-
       //camera and light
       this->dataTank->localCamera->apply ();
       this->dataTank->localCamera->project ();
+
+      LightManager::getInstance()->draw();
+
+
+      // prepare for reflection rendering
+      mw->activateReflection();
+
+      // draw everything to be included in the reflection
+      this->drawEntityList(State::getObjectManager()->getReflectionList());
+//       for (unsigned int i = 0; i < this->dataTank->drawLists.size(); ++i)
+//         this->drawEntityList(State::getObjectManager()->getObjectList(this->dataTank->drawLists[i]));
+
+      // clean up from reflection rendering
+      mw->deactivateReflection();
+    }
+  }
+
+}
+
+
+/**
+ *  refraction rendering for water surfaces
+ */
+void GameWorld::renderPassRefraction()
+{
+    // clear buffer
+  glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
+  glLoadIdentity();
+
+  const std::list<BaseObject*>* reflectedWaters;
+  MappedWater* mw;
+
+  if( (reflectedWaters = ClassList::getList(CL_MAPPED_WATER)) != NULL)
+  {
+    std::list<BaseObject*>::const_iterator it;
+    for (it = reflectedWaters->begin(); it != reflectedWaters->end(); it++)
+    {
+      mw =  dynamic_cast<MappedWater*>(*it);
+
+      //camera and light
+      this->dataTank->localCamera->apply ();
+      this->dataTank->localCamera->project ();
+      // prepare for reflection rendering
+      mw->activateRefraction();
+
+
       LightManager::getInstance()->draw();
       // draw everything to be included in the reflection
@@ -593,43 +636,4 @@
 
       // clean up from reflection rendering
-      mw->deactivateReflection();
-    }
-  }
-
-}
-
-
-/**
- *  refraction rendering for water surfaces
- */
-void GameWorld::renderPassRefraction()
-{
-    // clear buffer
-  glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
-  glLoadIdentity();
-
-  const std::list<BaseObject*>* reflectedWaters;
-  MappedWater* mw;
-
-  if( (reflectedWaters = ClassList::getList(CL_MAPPED_WATER)) != NULL)
-  {
-    std::list<BaseObject*>::const_iterator it;
-    for (it = reflectedWaters->begin(); it != reflectedWaters->end(); it++)
-    {
-      mw =  dynamic_cast<MappedWater*>(*it);
-
-      // prepare for reflection rendering
-      mw->activateRefraction();
-
-      //camera and light
-      this->dataTank->localCamera->apply ();
-      this->dataTank->localCamera->project ();
-      LightManager::getInstance()->draw();
-      // draw everything to be included in the reflection
-      this->drawEntityList(State::getObjectManager()->getReflectionList());
-//       for (unsigned int i = 0; i < this->dataTank->drawLists.size(); ++i)
-//         this->drawEntityList(State::getObjectManager()->getObjectList(this->dataTank->drawLists[i]));
-
-      // clean up from reflection rendering
       mw->deactivateRefraction();
     }
Index: branches/water/src/world_entities/environments/mapped_water.cc
===================================================================
--- branches/water/src/world_entities/environments/mapped_water.cc	(revision 8259)
+++ branches/water/src/world_entities/environments/mapped_water.cc	(revision 8260)
@@ -242,4 +242,6 @@
   //glEnable(GL_CLIP_PLANE0);
   Vector pos = State::getCameraNode()->getAbsCoor();
+  //pos.debug();
+  //PRINTF(0)("waterheight: %f\n", waterHeight);
   if(pos.y > waterHeight)
   {
@@ -260,5 +262,5 @@
     // but just render it clipped so only the top is drawn.
     double plane[4] = {0.0, 1.0, 0.0, waterHeight};
-    //glClipPlane(GL_CLIP_PLANE0, plane);
+    glClipPlane(GL_CLIP_PLANE0, plane);
   }
 }
@@ -268,5 +270,5 @@
 {
   //glDisable(GL_CLIP_PLANE0);
-  //glCullFace(GL_BACK);
+  glCullFace(GL_BACK);
 
   //mat.select();
@@ -299,4 +301,6 @@
   //glEnable(GL_CLIP_PLANE0);
   Vector pos = State::getCameraNode()->getAbsCoor();
+  //pos.debug();
+  //PRINTF(0)("waterheight: %f\n", waterHeight);
   if(pos.y > waterHeight)
   {
@@ -306,5 +310,5 @@
 
     // Since the world is updside down we need to change the culling to FRONT
-    //glCullFace(GL_FRONT);
+    glCullFace(GL_FRONT);
 
     // Set our plane equation and turn clipping on
@@ -360,5 +364,5 @@
 {
   //glDisable(GL_CLIP_PLANE0);
-  //glCullFace(GL_BACK);
+  glCullFace(GL_BACK);
 
 
