Index: /branches/release-39/lib/MT/Upgrade.pm
===================================================================
--- /branches/release-39/lib/MT/Upgrade.pm (revision 2427)
+++ /branches/release-39/lib/MT/Upgrade.pm (revision 2474)
@@ -320,5 +320,5 @@
                     foreach my $map (MT::TemplateMap->load({ blog_id => $blog->id })) {
                         next if $map->file_template;
-            
+
                         my $at = $map->archive_type;
                         if ($at eq 'Individual') {
@@ -1106,42 +1106,46 @@
         $rows++;
         my ($rawmeta, $id) = @$row;
-        if ($rawmeta =~ m/^SERG/) {
-            # deserialize
-            my $metadataref = $ser->unserialize($rawmeta);
-            if ($metadataref) {
-                my $metadata = $$metadataref;
-                my $obj = $class->load( { id => $id }, { no_class => 1, fetchonly => [ 'id', ( $class_type ? ( $class->properties->{class_column} ) : () ) ] });
-                if ($obj) {
-                    my $changed = 0;
-                    foreach my $metaname (keys %$metadata) {
-                        my $metavalue = $metadata->{$metaname};
-                        if ($metaname eq 'customfields') {
-                            next unless $cfclass;
-
-                            # extra work for custom fields; a hash into itself
-                            my $cfdata = $metavalue;
-                            next unless ref $cfdata eq 'HASH';
-
-                            foreach my $cfname (keys %$cfdata) {
-                                my $cfvalue = $cfdata->{$cfname};
-                                my $cftype = $type;
-                                if ($class_type) {
-                                    $cftype = $obj->class_type;
+        if (defined $rawmeta) {
+            push @ids, $id;
+            if ($rawmeta =~ m/^SERG/) {
+                # deserialize
+                my $metadataref = $ser->unserialize($rawmeta);
+                if ($metadataref) {
+                    my $metadata = $$metadataref;
+                    my $obj = $class->load( { id => $id }, { no_class => 1,
+                        fetchonly => [ 'id',
+                            ( $class_type ? ( $class->properties->{class_column} ) : () )
+                        ]
+                    });
+                    if ($obj) {
+                        foreach my $metaname (keys %$metadata) {
+                            my $metavalue = $metadata->{$metaname};
+                            if ($metaname eq 'customfields') {
+                                next unless $cfclass;
+
+                                # extra work for custom fields;
+                                # a hash into itself
+                                my $cfdata = $metavalue;
+                                next unless ref $cfdata eq 'HASH';
+
+                                foreach my $cfname (keys %$cfdata) {
+                                    my $cfvalue = $cfdata->{$cfname};
+                                    my $cftype = $type;
+                                    if ($class_type) {
+                                        $cftype = $obj->class_type;
+                                    }
+
+                                    # make sure CustomFields::Field exists
+                                    my $fld = $fields{$cfname}{$cftype} ||= $cfclass->load({ basename => $cfname, obj_type => $cftype });
+                                    next unless $fld;
+
+                                    $self->_save_meta($obj,
+                                        'field.' . $cfname, $cfvalue);
                                 }
-
-                                # make sure CustomFields::Field exists
-                                my $fld = $fields{$cfname}{$cftype} ||= $cfclass->load({ basename => $cfname, obj_type => $cftype });
-                                next unless $fld;
-
-                                $changed++;
-                                $self->_save_meta($obj, 'field.' . $cfname, $cfvalue);
+                            } else {
+                                $self->_save_meta($obj, $metaname,
+                                    $metavalue);
                             }
-                        } else {
-                            $changed++;
-                            $self->_save_meta($obj, $metaname, $metavalue);
                         }
-                    }
-                    if ($changed) {
-                        push @ids, $obj->id;
                     }
                 }
