The rupee failed to hold onto its early gains as strengthening dollar against the major overseas currencies coupled with fall in the domestic share prices dampened the sentiment.The spot rupee ended weak at 43.81/82 per dollar, off its early high of 43.76 a dollar.G-sec yields, which slid sharply in early trades on news of government borrowings likely to increase sharply this coming fiscal, recovered marginally towards the close on ample liquidity in the banking system.The benchmark 10-year bond yield came off its lows of 6.7048% to end weaker at 6.6668%.