Index: Pref.pm =================================================================== --- Pref.pm (revision 7648) +++ Pref.pm (working copy) @@ -240,8 +240,18 @@ $sth->execute( $obj->id, $since, @{$filter} ); while ( my ($name, $idx, $value, $ts) = $sth->fetchrow_array ) { + + if ( $value =~ s/^json:// ) { + $value = eval { from_json( $value ) }; + if ( $@ ) { + warn "changed_since JSON error: $@\n"; + next; + } + } + if ( exists $prefs->{$name} ) { my $prev = $prefs->{$name}->{value}; + if ( ref $prev eq 'ARRAY' ) { push @{ $prefs->{$name}->{value} }, $value; } @@ -250,14 +260,6 @@ } } else { - if ( $value =~ s/^json:// ) { - $value = eval { from_json( $value ) }; - if ( $@ ) { - warn "changed_since JSON error: $@\n"; - next; - } - } - $prefs->{$name} = { value => $value, ts => $ts,