Index: branches/release-35/lib/MT/Object.pm
===================================================================
--- branches/release-35/lib/MT/Object.pm (revision 1927)
+++ branches/release-35/lib/MT/Object.pm (revision 1928)
@@ -1013,14 +1013,21 @@
 }
 
-# This method is overridden since D::OD uses column_values to retrieve
-# the content to cache if caching is enabled. Thus, we must ensure any
-# metadata is serialized prior to caching.
-sub column_values {
-    my $props = $_[0]->properties;
-    if ($props->{meta_column}
-        && $_[0]->{changed_cols}{$props->{meta_column}}) {
-        $_[0]->pre_save_serialize_metadata;
-    }
-    return $_[0]->SUPER::column_values(@_);
+sub deflate {
+    my $obj = shift;
+    my $data = $obj->SUPER::deflate();
+    if ($obj->has_meta()) {
+        $data->{meta} = $obj->{__meta}->deflate_meta();
+    }
+    return $data;
+}
+
+sub inflate {
+    my $class = shift;
+    my ($data) = @_;
+    my $obj = $class->SUPER::inflate(@_);
+    if ($class->has_meta()) {
+        $obj->{__meta}->inflate_meta($data->{meta});
+    }
+    return $obj;
 }
 
@@ -1164,6 +1171,4 @@
 
 use base qw( Data::ObjectDriver::BaseObject );
-
-sub driver { $MT::Object::DRIVER ||= MT::ObjectDriverFactory->new }
 
 sub install_properties {
@@ -1185,4 +1190,6 @@
 *count = \&MT::Object::count;
 *columns_of_type = \&MT::Object::columns_of_type;
+
+*driver = \&MT::Object::dbi_driver;
 
 # TODO: copy this too
