Chicago's city council has approved a measure that would force major American retailers to pay an increased minimum wage to their employees.
Stores like Wal-Mart would be affected by the measure
The council backed a starting salary of $9.25 an hour, well above the existing $5.15 minimum, despite opposition from retailing giant Wal-Mart.
But Mayor Richard Daley has not yet said whether he will sign it into law.
Wal-Mart has long been the target of labour activists for its low wages and anti-union stance.
Wal-Mart is planning to open its first store in Chicago later this year and has been trying for two years to open other stores in the city.
The new ordinance would also require benefits such as health care of $1.50 an hour, with the rate rising to a $10-an-hour wage plus $3 benefits by 2010.
Critics say the measure will restrict job opportunities and keep investment away from urban neighbourhoods in need of development.
The ordinance was passed 35-14 after three hours of debate.
The new measure will apply to large retailers with more than $1bn (£790m) in annual sales and stores which are bigger than 90,000 sq ft.
"It's wrong for the city council to tell the people of Chicago where to shop and to make it harder for inner-city residents to find jobs," Wal-Mart's senior vice-president of store operations Michael Lewis told the Associated Press news agency.
Wal-Mart says it already pays an entry-level salary of $7.25 an hour, well above the minimum wage.
Wal-Mart and chain store Target both said they may change their plans to build more stores in the city of Chicago.
Other US cities with "living wage" laws include Santa Fe, New Mexico, San Francisco, and Washington DC.