A more stable version