diff -r ef48d0b91baa docs/zandronum-history.txt
--- a/docs/zandronum-history.txt	Tue Sep 17 18:50:31 2013 +0200
+++ b/docs/zandronum-history.txt	Tue Sep 17 22:42:34 2013 +0200
@@ -23,6 +23,7 @@
 ---
 
 +	- Added new dmflag sv_sharekeys. When enabled, any keys picked are shared between players. Also, players joining the game get the keys others have as well. [Dusk]
+-	- Fixed: when a player is damaged, don't send useless inconsistent values of HP and Armor (100/100) to the clients if they're not allowed to see the real HP/Armor. [Edward-san]
 
 
 1.2
diff -r ef48d0b91baa src/sv_commands.cpp
--- a/src/sv_commands.cpp	Tue Sep 17 18:50:31 2013 +0200
+++ b/src/sv_commands.cpp	Tue Sep 17 22:42:34 2013 +0200
@@ -632,25 +632,18 @@
 		if ( SERVER_IsValidClient( ulIdx ) == false )
 			continue;
 
-		SERVER_CheckClientBuffer( ulIdx, 8, true );
+		// Send the updated health and armor of the player who's being damaged to this player
+		// only if this player is allowed to know.
+		if ( SERVER_IsPlayerAllowedToKnowHealth( ulIdx, ulPlayer ) == false )
+		    continue;
+
+	    SERVER_CheckClientBuffer( ulIdx, 8, true );
+
 		NETWORK_WriteHeader( &SERVER_GetClient( ulIdx )->PacketBuffer.ByteStream, SVC_DAMAGEPLAYER );
 		NETWORK_WriteByte( &SERVER_GetClient( ulIdx )->PacketBuffer.ByteStream, ulPlayer );
-
-		// Only send the player who's being damaged to this player if this player is
-		// allowed to know what his health is. Otherwise, just tell them it's 100/100
-		// (WHICH IS A LIE!!!!!!).
-		if ( SERVER_IsPlayerAllowedToKnowHealth( ulIdx, ulPlayer ))
-		{
-			NETWORK_WriteShort( &SERVER_GetClient( ulIdx )->PacketBuffer.ByteStream, players[ulPlayer].health );
-			NETWORK_WriteShort( &SERVER_GetClient( ulIdx )->PacketBuffer.ByteStream, ulArmorPoints );
-			NETWORK_WriteShort( &SERVER_GetClient( ulIdx )->PacketBuffer.ByteStream, players[ulPlayer].attacker ? players[ulPlayer].attacker->lNetID : -1 );
-		}
-		else
-		{
-			NETWORK_WriteShort( &SERVER_GetClient( ulIdx )->PacketBuffer.ByteStream, 100 );
-			NETWORK_WriteShort( &SERVER_GetClient( ulIdx )->PacketBuffer.ByteStream, 100 );
-			NETWORK_WriteShort( &SERVER_GetClient( ulIdx )->PacketBuffer.ByteStream, -1 );
-		}
+		NETWORK_WriteShort( &SERVER_GetClient( ulIdx )->PacketBuffer.ByteStream, players[ulPlayer].health );
+		NETWORK_WriteShort( &SERVER_GetClient( ulIdx )->PacketBuffer.ByteStream, ulArmorPoints );
+		NETWORK_WriteShort( &SERVER_GetClient( ulIdx )->PacketBuffer.ByteStream, players[ulPlayer].attacker ? players[ulPlayer].attacker->lNetID : -1 );
 	}
 }
 
