Index: src/wp-includes/post-functions.php
===================================================================
--- src/wp-includes/post-functions.php	(revision 35561)
+++ src/wp-includes/post-functions.php	(working copy)
@@ -1950,7 +1950,11 @@
 			else
 				$value = format_to_edit($value);
 		} else {
-			$value = esc_attr($value);
+			if ( is_array( $value ) ) {
+				$value = array_map( 'esc_attr', $value );
+			} else {
+				$value = esc_attr( $value );
+			}
 		}
 	} elseif ( 'db' == $context ) {
 		if ( $prefixed ) {
Index: tests/phpunit/tests/post/meta.php
===================================================================
--- tests/phpunit/tests/post/meta.php	(revision 35561)
+++ tests/phpunit/tests/post/meta.php	(working copy)
@@ -237,4 +237,24 @@
 		$this->assertEquals($funky_meta, get_post_meta($this->post_id, 'test_funky_post_meta', true));
 
 	}
+
+	/**
+	 * @ticket 34405
+	 */
+	function test_meta_array() {
+		//Value that we want to same and then look for.
+		$value = array(
+			'foo',
+			'bar'
+		);
+		// Save the meta field
+		update_post_meta( $this->post_id, 'sampleValue', $value );
+
+		// Full post
+		$full_post = get_post( $this->post_id, 'object', 'edit' );
+
+		// Compare the values.
+		$this->assertEquals( $value, $full_post->sampleValue );
+	}
+
 }
