US President George W Bush faces a showdown with Congress after it passed a new version of a bill on child health insurance he has already vetoed.
President Bush has vowed to veto the proposed bill a second time
The Democrat-controlled upper-house Senate passed the bill by 64-30 votes after it was approved by the House of Representatives last week.
But the bill failed to muster enough votes in the lower house to override a new presidential veto.
Mr Bush rejects the plan because it seeks to raise tobacco taxes.
He has argued the legislation takes the programme beyond its original purpose of insuring children from low-income families.
The White House has said his objections have not been addressed in the revised version of the bill.
Republicans fear the legislation marks a Democratic attempt to expand government-run health care.
The State Children's Health Insurance Programme (SCHIP) currently subsidises health care for some 6.6 million people, most of them children.
It is directed at families who earn too much to qualify for the Medicaid programme for the poor but cannot afford private health insurance cover.
Supporters of the bill say the proposed $35bn expansion, paid for by raising federal cigarette tax by 61 cents to $1 a pack, would help give health coverage to an extra 4 million children.
Senior Democrats said they had redrafted the bill in an effort to allay Republican concerns that the expanded programme would benefit adults, families with higher incomes and illegal immigrants.
However, the new version of the legislation passed in the House last Thursday by only 265-142 votes.
Republicans said the changes had been largely cosmetic and complained the legislation had been rushed.
Mr Bush argues that expanding SCHIP coverage would encourage people currently covered in the private sector to switch to government coverage, and that the proposal is too costly.
"If Congress sends this bill back to me, I'm going to veto it again," he told a business audience on Tuesday.