This move comes as something of a surprise to many around the NFL, considering McKelvin is looked upon as a bust after being drafted 11th overall in 2008.
For more on the Bills, please be sure to check out Buffalo Rumblings
McKelvin only played in 13 games last season and racked up just 21 tackles and one interception. In his career, McKelvin has started 33 games in five seasons, apparently warranting a substantial contract to keep him.
With rookie Stephon Gilmore and second-year corner Aaron Williams starting on the outside, McKelvin's main duties will be in the return game, where he has made an impact. Still, $20 million is a lot to be paying out for an average defensive player and a solid return man while letting guard Andy Levitre walk.
Buffalo now has less cap space to address other glaring needs such as wide receiver, inside linebacker, and perhaps safety as well, following George Wilson's departure.