diff -Nru tremulous/src/game/g_combat.c tremulous.temp/src/game/g_combat.c
--- tremulous/src/game/g_combat.c	2007-02-28 18:28:08.000000000 +0100
+++ tremulous.temp/src/game/g_combat.c	2007-02-28 18:31:16.000000000 +0100
@@ -138,6 +138,7 @@
   char      *killerName, *obit;
   float     totalDamage = 0.0f;
   gentity_t *player;
+  qboolean  tk = qfalse;
 
 
   if( self->client->ps.pm_type == PM_DEAD )
@@ -166,7 +167,11 @@
     killer = attacker->s.number;
 
     if( attacker->client )
+    {
       killerName = attacker->client->pers.netname;
+      tk = ( attacker != self && attacker->client->ps.stats[ STAT_PTEAM ] 
+        == self->client->ps.stats[ STAT_PTEAM ] );
+    }
     else
       killerName = "<non-client>";
   }
@@ -199,11 +204,24 @@
     BG_DeactivateUpgrade( i, self->client->ps.stats );
 
   // broadcast the death event to everyone
-  ent = G_TempEntity( self->r.currentOrigin, EV_OBITUARY );
-  ent->s.eventParm = meansOfDeath;
-  ent->s.otherEntityNum = self->s.number;
-  ent->s.otherEntityNum2 = killer;
-  ent->r.svFlags = SVF_BROADCAST; // send to everyone
+  if( !tk )
+  {
+    ent = G_TempEntity( self->r.currentOrigin, EV_OBITUARY );
+    ent->s.eventParm = meansOfDeath;
+    ent->s.otherEntityNum = self->s.number;
+    ent->s.otherEntityNum2 = killer;
+    ent->r.svFlags = SVF_BROADCAST; // send to everyone
+  }
+  else 
+  {
+    // tjw: obviously this is a hack and belongs in the client, but
+    //      this works as a temporary fix.
+    trap_SendServerCommand( -1,
+      va( "print \"%s^7 was killed by ^1TEAMMATE^7 %s\n\"",
+      self->client->pers.netname, attacker->client->pers.netname ) );
+    trap_SendServerCommand( attacker - g_entities,
+      va( "cp \"You killed ^1TEAMMATE^7 %s\"", self->client->pers.netname ) );
+  }
 
   self->enemy = attacker;
 
