Arun
Depending on the version of code that you are running, and that your neighbor is running this may be an expected behavior. It was done to enable a feature sometimes referred to as soft reset. It would allow you to change policy affecting routes to/from a neighbor without requiring a hard reset of the neighbor relationship. The way it worked is that the router keeps a copy of all prefixes learned from a neighbor without any modification (no filtering etc). Then it passes through this table applying your configured policy to build the BGP tables and the routing table. Then if you change your policy the router has only to pass through the table again applying the new policy. There would be no need to tear down the neighbor relationship.
Then there was an enhancement to the soft reset feature that did not require keeping a copy of all routes learned from a neighbor. It sounds like you or your neighbor may be running a version of code with the earlier implementation of the feature.
You can use this link to find more information about this feature.
http://www.cisco.com/en/US/products/ps6599/products_data_sheet09186a0080087b3a.html
HTH
Rick
HTH
Rick