* applied @billpull 's changes.