Index: client/agents/cma_core.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/client/agents/cma_core.c,v retrieving revision 1.22 diff -u -r1.22 cma_core.c --- client/agents/cma_core.c 2002/05/30 16:16:46 1.22 +++ client/agents/cma_core.c 2002/06/06 20:43:19 @@ -693,7 +693,15 @@ } } - if (last_request_id == 0 && ALWAYS_APPLY_AT_SERVER) { + if (last_request_id == 0 || ALWAYS_APPLY_AT_SERVER) { + /* + * If last_request is 0 no change request was send. But it also + * means that the results are different or the results_are_equal + * test at the start of the function would be true. So this + * means that the client has other results for the same + * allocation of citizen than the server. We just send a + * PACKET_CITY_REFRESH to bring them in sync. + */ struct packet_generic_integer packet; packet.value = pcity->id;