diff --git a/sscanf2.inc b/sscanf2.inc
index f6ee62e..a879391 100644
--- a/sscanf2.inc
+++ b/sscanf2.inc
@@ -1355,6 +1355,31 @@ forward OnCachedInit();
CHAIN_FORWARD:SSCANF_OnPlayerDisconnect(playerid, reason) = 1;
#endif
+/**
+ * sscanf
+ *
+ * Called when player name changes.
+ *
+ */
+stock SSCANF__SetPlayerName(playerid, const name[])
+{
+ new
+ SSCANF_value = SetPlayerName(playerid, name)
+ ;
+
+ if (SSCANF_value == 1 && SSCANF_gInit == 1)
+ {
+ SSCANF_Join(playerid, name, bool:IsPlayerNPC(playerid));
+ }
+ return SSCANF_value;
+}
+#if defined _ALS_SetPlayerName
+ #undef SetPlayerName
+#else
+ #define _ALS_SetPlayerName
+#endif
+#define SetPlayerName SSCANF__SetPlayerName
+
// Ensure that these purely internal natives can't be called from outside this
// include.
#define SSCANF_Init