(CNN) -- Brazil's Olympic swimming champion Cesar Cielo is free to compete in this year's world championships after escaping a drugs ban.
Cielo, who won the 50m freestyle at the 2008 Beijing Games, was cleared by a special tribunal of the Court of Arbitration of Sport sitting in Shanghai where the worlds are being held.
Cielo and teammates Nicholas dos Santos and Henrique Barbosa were given warnings after testing positive for a banned diuretic.
But another swimmer on the Brazilian squad, Vinicius Waked, was banned for a year because it was his second violation for drugs offences.
The CAS tribunal dismissed an appeal by world swimming's governing body FINA, who wanted stiffer punishments.
It followed a six-hour hearing Wednesday at which Cielo appeared to give evidence.
The quartet tested positive for Furosemide, which can act as a masking agent for other banned drugs, at a meeting back in May.
They claimed that a caffeine supplement had been contaminated to bring about the failed drugs test.
The decision to clear Cielo is a major boost for the world swimming championships where he is set to be a big attraction.
But it drew criticism in some quarters and triple world champion Roland Schoeman wrote on his Twitter blog: "FINA and the CAS have done a great disservice to the world of swimming & set a dangerous precedent."
Cielo is reigning world champion over 50m and 100m, breaking the championship record in the shorter sprint and setting a new world mark of 46.91 seconds in the 100 in Rome two years ago.
The 24-year-old is also the holder of the world record in the 50m, setting a record of 20.91 in Sao Paulo in December 2009.
American Michael Phelps, who won a record eight golds at the Beijing Olympics, returns to China for the competition and could swim up to seven events as he builds up to London 2012.