The rupee weakened 22 paise to 95.96 per dollar as strong importer demand, rising crude prices and global bond yields pressured the currency. Traders said RBI intervened through state-owned banks, while US-Iran tensions raised inflation and rate-hike concerns.