diff --git a/plugins/basetriggers.sp b/plugins/basetriggers.sp
index 9bf0d77a..6010b4d4 100644
--- a/plugins/basetriggers.sp
+++ b/plugins/basetriggers.sp
@@ -60,9 +60,9 @@ ConVar g_Cvar_WinLimit;
 ConVar g_Cvar_FragLimit;
 ConVar g_Cvar_MaxRounds;
 
-#define TIMELEFT_ALL_ALWAYS		0		/* Print to all players */
-#define TIMELEFT_ALL_MAYBE		1		/* Print to all players if sm_trigger_show allows */
-#define TIMELEFT_ONE			2		/* Print to a single player */
+#define PRINT_TO_ALL_ALWAYS		0		/* Print to all players */
+#define PRINT_TO_ALL_MAYBE		1		/* Print to all players if sm_trigger_show allows */
+#define PRINT_TO_ONE			2		/* Print to a single player */
 
 bool mapchooser;
 
@@ -188,12 +188,12 @@ public void ConVarChange_TimeleftInterval(ConVar convar, const char[] oldValue,
 
 public Action Timer_DisplayTimeleft(Handle timer)
 {
-	ShowTimeLeft(0, TIMELEFT_ALL_ALWAYS);	
+	ShowTimeLeft(0, PRINT_TO_ALL_ALWAYS);	
 }
 
 public Action Command_Timeleft(int client, int args)
 {
-	ShowTimeLeft(client, TIMELEFT_ONE);
+	ShowTimeLeft(client, PRINT_TO_ONE);
 	
 	return Plugin_Handled;
 }
@@ -238,16 +238,7 @@ public Action Command_Motd(int client, int args)
 
 public Action Command_FriendlyFire(int client, int args)
 {
-	if (client == 0)
-	{
-		ReplyToCommand(client, "[SM] %t", "Command is in-game only");
-		return Plugin_Handled;
-	}
-
-	if (!IsClientInGame(client))
-		return Plugin_Handled;
-	
-	ShowFriendlyFire(client);
+	ShowFriendlyFire(client, PRINT_TO_ONE);
 
 	return Plugin_Handled;
 }
@@ -259,7 +250,7 @@ public void OnClientSayCommand_Post(int client, const char[] command, const char
 	}
 	else if (strcmp(sArgs, "timeleft", false) == 0)
 	{
-		ShowTimeLeft(client, TIMELEFT_ALL_MAYBE);
+		ShowTimeLeft(client, PRINT_TO_ALL_MAYBE);
 	}
 	else if (strcmp(sArgs, "thetime", false) == 0)
 	{
@@ -277,7 +268,7 @@ public void OnClientSayCommand_Post(int client, const char[] command, const char
 	}
 	else if (strcmp(sArgs, "ff", false) == 0)
 	{
-		ShowFriendlyFire(client);
+		ShowFriendlyFire(client, PRINT_TO_ALL_MAYBE);
 	}
 	else if (strcmp(sArgs, "currentmap", false) == 0)
 	{
@@ -336,8 +327,8 @@ void ShowTimeLeft(int client, int who)
 	
 	char finalOutput[1024];
 	
-	if (who == TIMELEFT_ALL_ALWAYS
-		|| (who == TIMELEFT_ALL_MAYBE && g_Cvar_TriggerShow.IntValue))
+	if (who == PRINT_TO_ALL_ALWAYS
+		|| (who == PRINT_TO_ALL_MAYBE && g_Cvar_TriggerShow.IntValue))
 	{
 		client = 0;	
 	}
@@ -491,8 +482,8 @@ void ShowTimeLeft(int client, int who)
 		FormatEx(finalOutput, sizeof(finalOutput), "%T", "NoTimelimit", client);
 	}
 
-	if (who == TIMELEFT_ALL_ALWAYS
-		|| (who == TIMELEFT_ALL_MAYBE && g_Cvar_TriggerShow.IntValue))
+	if (who == PRINT_TO_ALL_ALWAYS
+		|| (who == PRINT_TO_ALL_MAYBE && g_Cvar_TriggerShow.IntValue))
 	{
 		PrintToChatAll("[SM] %s", finalOutput);
 	}
@@ -507,7 +498,7 @@ void ShowTimeLeft(int client, int who)
 	}
 }
 
-void ShowFriendlyFire(int client)
+void ShowFriendlyFire(int client, int who)
 {
 	if (g_Cvar_FriendlyFire)
 	{
@@ -520,14 +511,21 @@ void ShowFriendlyFire(int client)
 		{
 			strcopy(phrase, sizeof(phrase), "Friendly Fire Off");
 		}
-	
-		if (g_Cvar_TriggerShow.IntValue)
+		
+		if (who == PRINT_TO_ALL_ALWAYS
+			|| (who == PRINT_TO_ALL_MAYBE && g_Cvar_TriggerShow.IntValue))
 		{
+			client = 0;
 			PrintToChatAll("[SM] %t", phrase);
 		}
-		else
+		else if (client != 0 && IsClientInGame(client))
 		{
-			PrintToChat(client,"[SM] %t", phrase);
+			PrintToChat(client, "[SM] %t", phrase);
+		}
+
+		if (client == 0)
+		{
+			PrintToServer("[SM] %T", phrase, client);
 		}
 	}
 }