"I think it's the perfect time to quit as I don't find a permanent place in the team these days," Mahmud was quoted as saying by BBC Sport. Mahmud played 76 One-day Internationals and 12 Tests, nine as captain.
Mahmud had a modest career but played a vital role, scoring 27 and taking 3 for 31, in Bangladesh's upset-win against Pakistan in the 1999 World Cup in England.
Mahmud succeeded Khaled Mashud as Bangladesh captain, after a humiliating 2003 World Cup in South Africa.
However, Bangladesh's continuing run of poor performances made Mahmud the target of a lot of flak from irate Bangladeshi fans.
After a disastrous series against England in 2003, Habibul Bashar was named captain and Mahmud was dropped from the team in January 2004 ahead of Bangladesh's tours of Namibia and Zimbabwe.
In protest, he announced his retirement from international cricket only to reverse his decision in less than 48 hours.