Safer pull() macro