Index: /branches/presentation/src/lib/graphics/effects/rain_effect.cc
===================================================================
--- /branches/presentation/src/lib/graphics/effects/rain_effect.cc	(revision 9117)
+++ /branches/presentation/src/lib/graphics/effects/rain_effect.cc	(revision 9118)
@@ -187,6 +187,6 @@
     // If we're not fading, change color immediately
     if (!this->rainFadeInActivate || !this->rainFadeOutActivate) {
-        CloudEffect::changeCloudColor(this->cloudColor, 0);
-        CloudEffect::changeSkyColor(this->skyColor, 0);
+        CloudEffect::changeCloudColor(this->cloudColor, 0.2);
+        CloudEffect::changeSkyColor(this->skyColor, 0.2);
     }
 }
@@ -208,6 +208,6 @@
 
     // Restore the old cloud- and sky color
-    CloudEffect::changeCloudColor(this->oldCloudColor, 0);
-    CloudEffect::changeSkyColor(this->oldSkyColor, 0);
+    CloudEffect::changeCloudColor(this->oldCloudColor, 0.2);
+    CloudEffect::changeSkyColor(this->oldSkyColor, 0.2);
 }
 
Index: /branches/presentation/src/lib/graphics/effects/snow_effect.cc
===================================================================
--- /branches/presentation/src/lib/graphics/effects/snow_effect.cc	(revision 9117)
+++ /branches/presentation/src/lib/graphics/effects/snow_effect.cc	(revision 9118)
@@ -28,4 +28,5 @@
 #include "shell_command.h"
 #include "script_class.h"
+#include "cloud_effect.h"
 
 #include "parser/tinyxml/tinyxml.h"
@@ -87,4 +88,7 @@
 	LoadParam(root, "size", this, SnowEffect, size);
 	LoadParam(root, "coord", this, SnowEffect, coord);
+  LoadParam(root, "cloudcolor", this, SnowEffect, setCloudColor);
+  LoadParam(root, "skycolor", this, SnowEffect, setSkyColor);
+  LoadParam(root, "fadetime", this, SnowEffect, setFadeTime);
 
 	LOAD_PARAM_START_CYCLE(root, element);
@@ -119,4 +123,8 @@
 	this->snowCoord = Vector(100,450,400);
 	this->snowWindForce = 1;
+  
+  this->fadeTime = 10;
+  this->cloudColor = Vector(0.2f, 0.2f, 0.2f);
+  this->skyColor = Vector(0.0f, 0.0f, 0.0f);
 }
 
@@ -149,4 +157,12 @@
   if (this->snowWindForce != 0)
     this->soundSource.play(this->windBuffer, 0.1f * this->snowWindForce, true);
+  
+  // Store cloud- and sky color before the snow
+  this->oldCloudColor = CloudEffect::cloudColor;
+  this->oldSkyColor   = CloudEffect::skyColor;
+
+  // Change the colors
+  CloudEffect::changeCloudColor(this->cloudColor, this->fadeTime);
+  CloudEffect::changeSkyColor(this->skyColor, this->fadeTime);
 
 }
@@ -162,4 +178,8 @@
 	if (this->windBuffer != NULL)
 		ResourceManager::getInstance()->unload(this->windBuffer);
+  
+  // Restore the old cloud- and sky color
+  CloudEffect::changeCloudColor(this->oldCloudColor, this->fadeTime);
+  CloudEffect::changeSkyColor(this->oldSkyColor, this->fadeTime);
 }
 
Index: /branches/presentation/src/lib/graphics/effects/snow_effect.h
===================================================================
--- /branches/presentation/src/lib/graphics/effects/snow_effect.h	(revision 9117)
+++ /branches/presentation/src/lib/graphics/effects/snow_effect.h	(revision 9118)
@@ -16,4 +16,5 @@
 class PlaneEmitter;
 class PNode;
+class CloudEffect;
 
 #include "sound_source.h"
@@ -77,4 +78,16 @@
         this->snowWindForce = force;
     }
+    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);
+    }
+    inline void setFadeTime(float time)
+    {
+      this->fadeTime = time;
+    }
 
     inline void setSnowOption(const std::string& option) {
@@ -97,4 +110,5 @@
     float         angle, randomAngle;
     float         alpha;
+    float         fadeTime;
     Vector        snowCoord;
     Vector2D      snowSize;
@@ -110,4 +124,8 @@
     OrxSound::SoundBuffer*    windBuffer;
 
+    Vector oldSkyColor;
+    Vector oldCloudColor;
+    Vector skyColor;
+    Vector cloudColor;
 };
 
