Original Source code - Version 2.