Index: view.c
===================================================================
--- view.c	(revision 9182)
+++ view.c	(working copy)
@@ -80,7 +80,7 @@
 // Prophecy camera pitchangle by Alexander "motorsep" Zubov
 cvar_t chase_pitchangle = {CVAR_SAVE, "chase_pitchangle", "55", "chase cam pitch angle"};
 
-float	v_dmg_time, v_dmg_roll, v_dmg_pitch;
+float	v_dmg_time, v_dmg_roll, v_dmg_pitch, timefade;
 
 
 /*
@@ -701,11 +701,22 @@
 			a2 = 1 / r_refdef.viewblend[3];
 			VectorScale(r_refdef.viewblend, a2, r_refdef.viewblend);
 		}
-
-		r_refdef.viewblend[0] = bound(0.0f, r_refdef.viewblend[0] * (1.0f/255.0f), 1.0f);
-		r_refdef.viewblend[1] = bound(0.0f, r_refdef.viewblend[1] * (1.0f/255.0f), 1.0f);
-		r_refdef.viewblend[2] = bound(0.0f, r_refdef.viewblend[2] * (1.0f/255.0f), 1.0f);
-		r_refdef.viewblend[3] = bound(0.0f, r_refdef.viewblend[3] * gl_polyblend.value, 1.0f);
+		if (cl.stats[STAT_HEALTH] <= 0 && cl.stats[STAT_HEALTH] != -666 && gl_polyblend.value) 
+		{
+			timefade += 0.5f * max(0.0001, cl.time - cl.oldtime);
+			r_refdef.viewblend[0] = bound(0.0f, 0.5f * (1.0f/255.0f), 1.0f);
+			r_refdef.viewblend[1] = bound(0.0f, 0.0f * (1.0f/255.0f), 1.0f);
+			r_refdef.viewblend[2] = bound(0.0f, 0.0f * (1.0f/255.0f), 1.0f);
+			r_refdef.viewblend[3] = bound(0.0f, timefade, 1.0f);
+		}
+		else
+		{
+			timefade = 0.0f;
+			r_refdef.viewblend[0] = bound(0.0f, r_refdef.viewblend[0] * (1.0f/255.0f), 1.0f);
+			r_refdef.viewblend[1] = bound(0.0f, r_refdef.viewblend[1] * (1.0f/255.0f), 1.0f);
+			r_refdef.viewblend[2] = bound(0.0f, r_refdef.viewblend[2] * (1.0f/255.0f), 1.0f);
+			r_refdef.viewblend[3] = bound(0.0f, r_refdef.viewblend[3] * gl_polyblend.value, 1.0f);
+		}
 	}
 }
 
