after_update race condition

Hello,
   I have two models. people and organisations
they have a many to many relationship between them.
I want to be able to create person in an organisation form and vice
versa.
the forms for them are according to the railscasts episode 75
complex_forms_3. which is as follows

I have a organisation form(that is created dynamically) in the person
form

class Organisation < ActiveRecord::Base
  has_and_belongs_to_many :people
after_update :save_organisations

def save_people
  people.each do|p|
    if p.should_destroy?
      p.destroy
    else
      p.save(false)
    end
end
end
end

class Person < ActiveRecord::Base
  has_and_belongs_to_many :organisations
after_update :save_people

def save_organisations
  organisations.each do|org|
    if org.should_destroy?
      org.destroy
    else
      org.save(false)
    end
  end
end
end

Now when i create a person or an organisation the process never gets
complete.
Only when i comment any one of the after_update statements The problem
goes away. But in this case I can either create/update an organisation
in the person form or a person in an organisation form depending upon
which after_update i have disabled.

can anyone tell mne whats going wrong and how do i correct it.

Thank you.