Some gamemode help... a spawning issue

My friend and I are working on a gamemode that is round based, two teams, and some simple functions… kinda like a skeleton gungame. (Mostly for practice)
Most everything works… except the spawning. Here’s the code snippet

function GunGameSpawn( ply )
timer.Create( “BSpawn”, 20, 1, function()
if ply:Team() == TEAM_BLUE_DEAD then
ply:SetTeam(TEAM_BLUE)
end
ply:Spawn()
end )
timer.Create( “RSpawn”, 20, 1, function()
if ply:Team() == TEAM_RED_DEAD then
ply:SetTeam(TEAM_RED)
end
ply:Spawn()
end )

timer.Start( “BSpawn” )
timer.Start( “RSpawn” )
end
hook.Add(“PlayerDeath”,“Spawn”,GunGameSpawn)

If one client is dead, they respawn after 20 seconds.
If it is more than one… only the first one that died respawns, and the others just have to sit there until round restart.

Any advice on how to fix this issue?

Take a look at the example here
**[Gamemode.PlayerDeathThink

http://wiki.garrysmod.com/favicon.ico](wiki.garrysmod.com/?title=Gamemode.PlayerDeathThink)**

Thanks Flawless