Mongoose getters not being applied in most straightforward case

I've boiled down a problem in my code to it's bare essentials:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var get_dob = function(date) {
  return "" + (date.getMonth() + 1) + "/" + (date.getDate()) + "/" + (date.getFullYear());
};

FooSchema = new Schema({
  dob: { type: Date, get: get_dob }
});

mongoose.connect("mongodb://127.0.0.1/test");
Foo = mongoose.model('Foo', FooSchema);

Foo.remove({}, function(err) {
  var f;
  f = new Foo({
    dob: Date.now()
  });
  f.save(function(err) {
    Foo.findOne({}, function(err, doc) {
      console.log(doc.toObject({
        getters: true
      }));
    });
  });
});

The output of the date is:

Mon, 07 May 2012 07:00:00 GMT

Why isn't the getter being applied?

there is a bug in the order of get/cast operations. its been this way for over a year. this will get fixed in the upcoming 3.x release. feel free to open a ticket here if there isn't yet one open.