diff --git a/src/script/cpp_api/s_env.cpp b/src/script/cpp_api/s_env.cpp
index 9ac9302ac67a14d5c6ae3255bbbe751656ab98a2..4b5feee96f88fdc1ce1cfcf7646082890ba45678 100644
--- a/src/script/cpp_api/s_env.cpp
+++ b/src/script/cpp_api/s_env.cpp
@@ -61,6 +61,9 @@ void ScriptApiEnv::environment_Step(float dtime)
 void ScriptApiEnv::player_event(ServerActiveObject* player, std::string type)
 {
 	SCRIPTAPI_PRECHECKHEADER
+	
+	if (player == NULL)
+		return;
 
 	// Get minetest.registered_playerevents
 	lua_getglobal(L, "minetest");
diff --git a/src/server.cpp b/src/server.cpp
index 40857f84d72954b673c90ddda6af9d5b91cd83f2..920b9aa2d64c5e4ac9410ea8692774de3962371f 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -4580,8 +4580,13 @@ bool Server::hudSetFlags(Player *player, u32 flags, u32 mask) {
 
 	SendHUDSetFlags(player->peer_id, flags, mask);
 	player->hud_flags = flags;
+	
+	PlayerSAO* playersao = player->getPlayerSAO();
+	
+	if (playersao == NULL)
+		return false;
 
-	m_script->player_event(player->getPlayerSAO(),"hud_changed");
+	m_script->player_event(playersao, "hud_changed");
 	return true;
 }