diff --git a/docs/rh-log.txt b/docs/rh-log.txt
index d76ebbb34..25764774c 100644
--- a/docs/rh-log.txt
+++ b/docs/rh-log.txt
@@ -1,4 +1,9 @@
-July 16, 2009
+July 17, 2009  (Changes by Graf Zahl)
+- fixed blue colormap
+- Added parameters to A_VileAttack.
+- Removed redundant definition of use_joystick from SDL/i_input.cpp.
+
+July 16, 2009
 - Turned net decompression into a non fatal error. It now drops the packet
   and waits for the sender to send a new, hopefully good, packet.
 - Reduced potential for overflow in R_ProjectSprite().
diff --git a/specs/udmf_zdoom.txt b/specs/udmf_zdoom.txt
index 420c1a3f1..fe64a8021 100644
--- a/specs/udmf_zdoom.txt
+++ b/specs/udmf_zdoom.txt
@@ -1,5 +1,5 @@
 ===============================================================================
-Universal Doom Map Format ZDoom extensions v1.7 - 07.06.2009
+Universal Doom Map Format ZDoom extensions v1.8 - 16.07.2009
 
 
     Copyright (c) 2008 Christoph Oelckers.
@@ -200,7 +200,7 @@ Note: All <bool> fields default to false unless mentioned otherwise.
    This affects the following specials:
    
    121: Line_SetIdentification, arg1
-   208: TranslucentLine, arg2
+   208: TranslucentLine, arg3
    
    These args are to be converted as follows to flags, bit by bit:
    
@@ -250,6 +250,10 @@ Added blockuse line flag.
 1.7 07.06.2009
 Added sidedef scaling properties and side specific clipmidtex and wrapmidtex.
 
+1.8 16.07.2009
+Added NoDecals sidedef option
+Fixed conversion specifications for TranslucentLine special.
+
 ===============================================================================
 EOF
 ===============================================================================
diff --git a/src/g_doom/a_archvile.cpp b/src/g_doom/a_archvile.cpp
index c9526ba85..ac620284c 100644
--- a/src/g_doom/a_archvile.cpp
+++ b/src/g_doom/a_archvile.cpp
@@ -101,8 +101,16 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_VileTarget)
 //
 // A_VileAttack
 //
-DEFINE_ACTION_FUNCTION(AActor, A_VileAttack)
+DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_VileAttack)
 {		
+	ACTION_PARAM_START(5);
+	ACTION_PARAM_SOUND(snd,0);
+	ACTION_PARAM_INT(dmg,1);
+	ACTION_PARAM_INT(blastdmg,2);
+	ACTION_PARAM_INT(blastrad,2);
+	ACTION_PARAM_FIXED(thrust,3);
+	ACTION_PARAM_NAME(dmgtype,4);
+
 	AActor *fire, *target;
 	int an;
 		
@@ -114,10 +122,10 @@ DEFINE_ACTION_FUNCTION(AActor, A_VileAttack)
 	if (!P_CheckSight (self, target, 0) )
 		return;
 
-	S_Sound (self, CHAN_WEAPON, "vile/stop", 1, ATTN_NORM);
-	P_TraceBleed (20, target);
-	P_DamageMobj (target, self, self, 20, NAME_None);
-	target->velz = 1000 * FRACUNIT / target->Mass;
+	S_Sound (self, CHAN_WEAPON, snd, 1, ATTN_NORM);
+	P_TraceBleed (dmg, target);
+	P_DamageMobj (target, self, self, dmg, NAME_None);
+	target->velz = Scale(thrust, 1000, target->Mass);
 		
 	an = self->angle >> ANGLETOFINESHIFT;
 
@@ -130,6 +138,6 @@ DEFINE_ACTION_FUNCTION(AActor, A_VileAttack)
 						 target->y - FixedMul (24*FRACUNIT, finesine[an]),
 						 target->z);
 		
-		P_RadiusAttack (fire, self, 70, 70, NAME_Fire, false);
+		P_RadiusAttack (fire, self, blastdmg, blastrad, dmgtype, false);
 	}
 }
diff --git a/src/sdl/i_input.cpp b/src/sdl/i_input.cpp
index f35dcf32d..3b3823e37 100644
--- a/src/sdl/i_input.cpp
+++ b/src/sdl/i_input.cpp
@@ -31,7 +31,6 @@ CVAR (Bool,  use_mouse,				true, CVAR_ARCHIVE|CVAR_GLOBALCONFIG)
 CVAR (Bool,  m_noprescale,			false, CVAR_ARCHIVE|CVAR_GLOBALCONFIG)
 CVAR (Bool,	 m_filter,				false, CVAR_ARCHIVE|CVAR_GLOBALCONFIG)
 CVAR (Bool,  sdl_nokeyrepeat,		false, CVAR_ARCHIVE|CVAR_GLOBALCONFIG)
-CVAR (Bool,  use_joystick,			false, CVAR_ARCHIVE|CVAR_GLOBALCONFIG)
 
 EXTERN_CVAR (Bool, fullscreen)
 
diff --git a/src/v_palette.cpp b/src/v_palette.cpp
index 87a4f9177..504a47cb2 100644
--- a/src/v_palette.cpp
+++ b/src/v_palette.cpp
@@ -443,8 +443,8 @@ void InitPalette ()
 		intensity = ((GPalette.BaseColors[c].r * 77 +
 			 GPalette.BaseColors[c].g * 143 +
 			 GPalette.BaseColors[c].b * 37));
-		shade[c] = ColorMatcher.Pick (
-			MIN( 255, ( intensity + ( intensity / 2 )) >> 8 ), 0, 0 );
+		shade[c] = ColorMatcher.Pick (0, 0, 
+			MIN( 255, ( intensity + ( intensity / 2 )) >> 8 ));
 	}
 
 	// desaturated colormaps
diff --git a/wadsrc/static/actors/actor.txt b/wadsrc/static/actors/actor.txt
index 3a5e5c5ee..04334701c 100644
--- a/wadsrc/static/actors/actor.txt
+++ b/wadsrc/static/actors/actor.txt
@@ -60,7 +60,7 @@ ACTOR Actor native //: Thinker
 	action native A_VileChase();
 	action native A_VileStart();
 	action native A_VileTarget(class<Actor> fire = "ArchvileFire");
-	action native A_VileAttack();	
+	action native A_VileAttack(sound snd = "vile/stop", int initialdmg = 20, int blastdmg = 70, int blastradius = 70, float thrustfac = 1.0, name damagetype = "Fire");
 	action native A_StartFire();
 	action native A_Fire(float spawnheight = 0);
 	action native A_FireCrackle();