diff --git a/EQ2/source/WorldServer/WorldDatabase.cpp b/EQ2/source/WorldServer/WorldDatabase.cpp
index c3a444483..5b5c18e98 100644
--- a/EQ2/source/WorldServer/WorldDatabase.cpp
+++ b/EQ2/source/WorldServer/WorldDatabase.cpp
@@ -1649,7 +1649,8 @@ bool WorldDatabase::loadCharacterProperties(Client* client) {
 		else if (!stricmp(prop_name, CHAR_PROPERTY_FLYMODE))
 		{
 			int8 flymode = atoi(prop_value);
-			ClientPacketFunctions::SendFlyMode(client, flymode, false);
+			if (flymode) // avoid fly mode notification unless enabled
+				ClientPacketFunctions::SendFlyMode(client, flymode, false);
 		}
 		else if (!stricmp(prop_name, CHAR_PROPERTY_INVUL))
 		{
diff --git a/EQ2/source/WorldServer/client.cpp b/EQ2/source/WorldServer/client.cpp
index 8f64ce054..7de203518 100644
--- a/EQ2/source/WorldServer/client.cpp
+++ b/EQ2/source/WorldServer/client.cpp
@@ -937,8 +937,6 @@ bool Client::HandlePacket(EQApplicationPacket *app) {
 						ClientPacketFunctions::SendLoginDenied( this );
 					}
 					zone_auth.RemoveAuth(zar);
-
-					database.loadCharacterProperties(this);
 				}
 				else
 				{
@@ -953,6 +951,7 @@ bool Client::HandlePacket(EQApplicationPacket *app) {
 			LogWrite(OPCODE__DEBUG, 1, "Opcode", "Opcode 0x%X (%i): OP_SysClient", opcode, opcode);
 			LogWrite(CCLIENT__DEBUG, 0, "Client", "Client '%s' (%u) is ready for spawn updates.", GetPlayer()->GetName(), GetPlayer()->GetCharacterID());
 			ready_for_updates = true;
+			database.loadCharacterProperties(this);
 			break;
 		}
 		case OP_MapRequest:{