Canada will suspend funding to the Commonwealth while the chair of the secretariat is occupied by Sri Lanka because of human rights concerns.
Canada will instead direct its planned $20m (£12m) contribution toward other Commonwealth programmes.
Sri Lanka has denied accusations by rights groups that its forces committed atrocities in the 1983-2009 war.
Canadian Prime Minister Stephen Harper boycotted a Commonwealth summit in Sri Lanka last year.
Sri Lanka’s army defeated separatist Tamil Tiger rebels in May 2009. The rebels have also been accused of atrocities.
“Canada remains deeply concerned about the absence of accountability for alleged serious violations of human rights and international humanitarian standards in Sri Lanka,” Canadian Foreign Affairs Minister John Baird told Canadian media.
“We will reallocate the funds to assist in combating the practice of child, early and forced marriage, and help Commonwealth civil society advance the promotion of human rights,” he added.
Mr Harper’s government has been praised by human rights groups in the past for pushing for an investigation into the end of Sri Lanka’s civil war.
Since then there have been allegations of mass civilian deaths at the end of the conflict. (BBC)