Current attributes in models become previous attributes too early

The resetting of previous attributes seems to happen too early, i.e., as soon as all event listeners are called, current attributes become previous attributes, which really should happen the next time set() is called, otherwise the following code fails:

	var Model = Backbone.Model.extend({
	    foo: function() {
	    	this.set({key: 'val2'});
	    	this.trigger('fooevent');
	    }
	});
	
	var model = new Model({key: 'val1'});
	
	model.bind('fooevent', function() {
		console.log(model.previous('key'));
	});
	
	model.foo();

The output should be ```val1``` and in backbone 0.3.3 it's ```val2```