diff --git a/README.md b/README.md
index 0d83ed31..071cd2d7 100644
--- a/README.md
+++ b/README.md
@@ -43,7 +43,7 @@ Archive's bin directory contains 2 subdirectories, 'bugfixed' and 'pure'
| mp_hostage_hurtable | 1 | 0 | 1 | The hostages can take damage.
`0` disabled
`1` from any team
`2` only from `CT`
`3` only from `T` |
| mp_show_radioicon | 1 | 0 | 1 | Show radio icon.
`0` disabled
`1` enabled |
| showtriggers | 0 | 0 | 1 | Debug cvar shows triggers. |
-| sv_alltalk | 0 | 0 | 3 | When players can hear each other ([further explanation](../../wiki/sv_alltalk)).
`0` dead don't hear alive
`1` no restrictions
`2` teammates hear each other
`3` Same as 2, but spectators hear everybody
+| sv_alltalk | 0 | 0 | 4 | When players can hear each other ([further explanation](../../wiki/sv_alltalk)).
`0` dead don't hear alive
`1` no restrictions
`2` teammates hear each other
`3` Same as 2, but spectators hear everybody
`4` alive hear alive, dead hear dead and alive.
| bot_deathmatch | 0 | 0 | 1 | Set's the mode for the zBot.
`0` disabled
`1` enable mode Deathmatch and not allow to do the scenario |
| bot_quota_mode | normal | - | - | Determines the type of quota.
`normal` default behaviour
`fill` the server will adjust bots to keep `N` players in the game, where `N` is bot_quota |
diff --git a/dist/game.cfg b/dist/game.cfg
index d632507a..c7e4818b 100644
--- a/dist/game.cfg
+++ b/dist/game.cfg
@@ -163,6 +163,7 @@ showtriggers 0
// 1 - no restrictions
// 2 - teammates hear each other
// 3 - same as 2, but spectators hear everybody
+// 4 - alive hear alive, dead hear dead and alive.
//
// Default value: "0"
sv_alltalk 0
diff --git a/regamedll/dlls/multiplay_gamerules.cpp b/regamedll/dlls/multiplay_gamerules.cpp
index 38338e99..1faa8d48 100644
--- a/regamedll/dlls/multiplay_gamerules.cpp
+++ b/regamedll/dlls/multiplay_gamerules.cpp
@@ -94,6 +94,8 @@ bool CCStrikeGameMgrHelper::CanPlayerHearPlayer(CBasePlayer *pListener, CBasePla
return (pListener->m_iTeam == pSender->m_iTeam);
case 3:
return (pListener->m_iTeam == pSender->m_iTeam || pListener->IsObserver());
+ case 4:
+ return (pListener->IsAlive() == pSender->IsAlive() || pSender->IsAlive());
default: // HLDS Behavior
break;
}