The chamber voted 31-19 against the measure after Democratic senators complained that it does not let Allegheny County and Scranton enforce stronger ordinances.
Those two jurisdictions approved local bans. But a court struck down Allegheny County's last year, and Scranton never enforced its own, fearing a similar fate.
The bill would bar every county and municipality except for one from enacting its own smoking ban.
It would let stand Philadelphia's year-and-a-half-old ban, the only active local smoking ordinance in the state.
The next step for the bill is not clear.
(Copyright 2008 by The Associated Press. All Rights Reserved.)