How to really disable event firing in sharepoint

One of the things I found out the hard way while programming event handlers in sharepoint is that you have to wrap your update() or delete() functions with the disableeventfiring function individually, for example:

this will work:
base.DisableEventFiring();
item.update();
base.EnableEventFiring();

this will NOT work:
base.DisableEventFiring();
item.update();
item.delete();
base.EnableEventFiring();

So the moral of the story is, only do one event triggering action at a time, do not try to do 2 or more within one wrapper.