MILWAUKEE—Union workers for Caterpillar Inc. in Wisconsin on Tuesday approved a revised contract that will freeze hourly wages for existing workers for the next six years and establish a lower pay scale for new hires.

Leaders for the United Steelworkers union described the vote in favor of the contract as "very close," but declined to provide a specific vote total. Bonuses totaling $4,000 a worker will be distributed by the company for the union's approval of the contract, up from the $2,500 bonus proposed by Caterpillar in an offer rejected by workers April 30.

The deal also will accelerate lump-sum contributions to workers' pensions by the company and reduce the number of weeks that workers can be temporarily laid off to 10 weeks annually from the 14 weeks proposed in the April offer from Caterpillar. The union said it managed to block Caterpillar's attempt to use temporary production workers at mining equipment assembly plants in South Milwaukee, Wis., and Milwaukee. The use of temps, also known as supplemental workers, is common in Caterpillar's other plants.

"Obviously, we feel we should have gotten more," said Kevin Jaskie, president of Steelworkers Local 1343, which represents 770 workers. He said many workers struggled with ratifying a deal that freezes wages for the life of the contract and pays new workers less.

The union said more than 90% of the local's membership cast ballots on the contract, which was endorsed by the union's negotiating team May 30.