--- icqd-srv.cpp	2007-06-30 07:21:58.000000000 +0300
+++ icqd-srv_new.cpp	2007-06-30 07:27:09.000000000 +0300
@@ -279,16 +279,17 @@ void CICQDaemon::icqChangeGroup(unsigned
   snprintf(szUin, 12, "%lu", _nUin);
   szUin[12] = '\0';
 
-  CPU_AddToServerList *pAdd = new CPU_AddToServerList(szUin, _nNewType,
-                                                      _nNewGroup);
+  CPU_AddToServerList *pAdd = new CPU_AddToServerList(szUin, _nNewType, _nNewGroup);
+  CSrvPacketTcp *pRemove = new CPU_RemoveFromServerList(szUin, _nOldGSID, nSID,
+                                                        _nOldType);
+
   gLog.Info(tr("%sChanging group on server list for %s ...\n"), L_SRVxSTR, szUin);
-  addToModifyUsers(pAdd->SubSequence(), szUin);
-  SendExpectEvent_Server(0, pAdd, NULL);
 
-  CSrvPacketTcp *pRemove = new CPU_RemoveFromServerList(szUin, _nOldGSID,
-                                                        nSID, _nOldType);
   addToModifyUsers(pRemove->SubSequence(), szUin);
   SendExpectEvent_Server(0, pRemove, NULL);
+
+  addToModifyUsers(pAdd->SubSequence(), szUin);
+  SendExpectEvent_Server(0, pAdd, NULL);
 }
 
 void CICQDaemon::icqChangeGroup(const char *_szId, unsigned long _nPPID,
