Index: branches/presentation/src/lib/graphics/effects/fog_effect.cc
===================================================================
--- branches/presentation/src/lib/graphics/effects/fog_effect.cc	(revision 9202)
+++ branches/presentation/src/lib/graphics/effects/fog_effect.cc	(revision 9205)
@@ -20,4 +20,5 @@
 #include "shell_command.h"
 #include "script_class.h"
+#include "cloud_effect.h"
 
 // Define shell commands
@@ -84,4 +85,7 @@
   this->fogFadeInActivate = false;
   this->fogFadeOutActivate = false;
+  
+  this->cloudColor = Vector(0.2f, 0.3f, 0.3f);
+  this->skyColor = Vector(0.2f, 0.3f, 0.3f);
 }
 
@@ -93,14 +97,16 @@
     WeatherEffect::loadParams(root);
 
-    LoadParam(root, "mode", this, FogEffect, setFogMode).describe("fog mode (linear, exponential)");;
-    LoadParam(root, "density", this, FogEffect, setFogDensity).describe("fog density if exp. fog");;
-    LoadParam(root, "range", this, FogEffect, setFogRange).describe("fog range: start, end");;
-    LoadParam(root, "color", this, FogEffect, setFogColor).describe("fog color: r,g,b");;
-    LoadParam(root, "fadeinduration", this, FogEffect, setFogFadeIn).describe("duration of the fade in");;
-    LoadParam(root, "fadeoutduration", this, FogEffect, setFogFadeOut).describe("duration of the fade out");;
-
+    LoadParam(root, "mode", this, FogEffect, setFogMode).describe("fog mode (linear, exponential)");
+    LoadParam(root, "density", this, FogEffect, setFogDensity).describe("fog density if exp. fog");
+    LoadParam(root, "range", this, FogEffect, setFogRange).describe("fog range: start, end");
+    LoadParam(root, "color", this, FogEffect, setFogColor).describe("fog color: r,g,b");
+    LoadParam(root, "fadeinduration", this, FogEffect, setFogFadeIn).describe("duration of the fade in");
+    LoadParam(root, "fadeoutduration", this, FogEffect, setFogFadeOut).describe("duration of the fade out");
+    LoadParam(root, "cloudcolor", this, FogEffect, setCloudColor);
+    LoadParam(root, "skycolor", this, FogEffect, setSkyColor);
+    
     LOAD_PARAM_START_CYCLE(root, element);
     {
-      LoadParam_CYCLE(element, "option", this, FogEffect, setFogOption).describe("sets a fog option: activate");;
+      LoadParam_CYCLE(element, "option", this, FogEffect, setFogOption).describe("sets a fog option: activate");
     }
     LOAD_PARAM_END_CYCLE(element);
@@ -125,4 +131,12 @@
 
     glEnable(GL_FOG);
+    
+    // Store cloud- and sky color before the snow
+    this->oldCloudColor = CloudEffect::cloudColor;
+    this->oldSkyColor   = CloudEffect::skyColor;
+    
+    // Change the colors
+    CloudEffect::changeCloudColor(this->cloudColor, this->fogFadeInDuration);
+    CloudEffect::changeSkyColor(this->skyColor, this->fogFadeInDuration);
 }
 
@@ -207,5 +221,5 @@
     // If no manual FadeIn value was set, set a default value
     if (!this->fogFadeInDuration > 0)
-        this->fogFadeInDuration = 20;
+        this->fogFadeInDuration = 10;
 
     // Reset local timer
@@ -227,4 +241,5 @@
     this->fogFadeInActivate = false;
 
+    
     // If Fog is off, turn it on first
     if (!this->fogActivate)
@@ -233,5 +248,5 @@
     // If no manual FadeOut value was set, set a default value
     if (!this->fogFadeOutDuration > 0)
-        this->fogFadeOutDuration = 20;
+        this->fogFadeOutDuration = 10;
 
     // set FogFadeOut activate
@@ -240,4 +255,8 @@
     // Reset local timer
     this->localTimer = 0;
-}
-
+
+    // Restore the old cloud- and sky color
+    CloudEffect::changeCloudColor(this->oldCloudColor, this->fogFadeOutDuration);
+    CloudEffect::changeSkyColor(this->oldSkyColor, this->fogFadeOutDuration);
+}
+
Index: branches/presentation/src/lib/graphics/effects/fog_effect.h
===================================================================
--- branches/presentation/src/lib/graphics/effects/fog_effect.h	(revision 9202)
+++ branches/presentation/src/lib/graphics/effects/fog_effect.h	(revision 9205)
@@ -10,4 +10,6 @@
 #include "glincl.h"
 #include "vector.h"
+
+class CloudEffect;
 
 class FogEffect : public WeatherEffect
@@ -73,4 +75,13 @@
       this->fogActivate = true;
   }
+  
+  inline void setCloudColor(float colorX, float colorY, float colorZ)
+  {
+    this->cloudColor = Vector(colorX, colorY, colorZ);
+  }
+  inline void setSkyColor(float colorX, float colorY, float colorZ)
+  {
+    this->skyColor = Vector(colorX, colorY, colorZ);
+  }
 
   void fadeInFog();
@@ -109,4 +120,9 @@
   Vector        colorVector;
   float         localTimer; 
+  
+  Vector oldSkyColor;
+  Vector oldCloudColor;
+  Vector skyColor;
+  Vector cloudColor;
 };
 
