- return $this->multidimensional_replace( $original, $this->id_data[ 'keys' ], $this->post_value() );
+ $undefined = new stdClass(); // symbol hack
+ $post_value = $this->manager->post_value( $this, $undefined );
+ if ( $undefined === $post_value ) {
+ $value = $this->_original_value;
+ } else {
+ $value = $post_value;
+ }
+
+ return $this->multidimensional_replace( $original, $this->id_data['keys'], $value );