If you want to modify the current listitem, the OnAfterChange Event will trigger again.
You can avoid this by disabling the trigger before the update:
this.DisableEventFiring();item.SystemUpdate(false);this.EnableEventFiring();