diff --git a/substrate/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/substrate/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm
index d35194b45d18cd750055b14deef6c5e7179cc61f..19fb9f93e4b5c07eb10d3ea56dc3d9ac3cf01852 100644
Binary files a/substrate/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm and b/substrate/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm differ
diff --git a/substrate/node/runtime/src/lib.rs b/substrate/node/runtime/src/lib.rs
index 36058dee37a111490caf94f745ad12135e87f4a8..312918aafd60bc79679759cdda236119ba2e9e9f 100644
--- a/substrate/node/runtime/src/lib.rs
+++ b/substrate/node/runtime/src/lib.rs
@@ -61,7 +61,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion {
 	impl_name: create_runtime_str!("substrate-node"),
 	authoring_version: 10,
 	spec_version: 31,
-	impl_version: 31,
+	impl_version: 32,
 	apis: RUNTIME_API_VERSIONS,
 };
 
diff --git a/substrate/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/substrate/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm
index 194ce2c0b8ccd4bc313f63cc7c9ea8d47b531f59..563f14dd1a414625c075124dc7ee906d1e63072f 100644
Binary files a/substrate/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm and b/substrate/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm differ
diff --git a/substrate/srml/council/src/voting.rs b/substrate/srml/council/src/voting.rs
index 17ab4adc7fdfbb2d6933f73d98d95caeb75c093d..29168c161782d4079fb7cd5bb5c3d72b3e115f74 100644
--- a/substrate/srml/council/src/voting.rs
+++ b/substrate/srml/council/src/voting.rs
@@ -117,7 +117,7 @@ decl_storage! {
 		pub VotingPeriod get(voting_period) config(): T::BlockNumber = T::BlockNumber::sa(3);
 		/// Number of blocks by which to delay enactment of successful, non-unanimous-council-instigated referendum proposals.
 		pub EnactDelayPeriod get(enact_delay_period) config(): T::BlockNumber = T::BlockNumber::sa(0);
-		pub Proposals get(proposals) build(|_| vec![0u8; 0]): Vec<(T::BlockNumber, T::Hash)>; // ordered by expiry.
+		pub Proposals get(proposals) build(|_| vec![]): Vec<(T::BlockNumber, T::Hash)>; // ordered by expiry.
 		pub ProposalOf get(proposal_of): map T::Hash => Option<T::Proposal>;
 		pub ProposalVoters get(proposal_voters): map T::Hash => Vec<T::AccountId>;
 		pub CouncilVoteOf get(vote_of): map (T::Hash, T::AccountId) => Option<bool>;
diff --git a/substrate/srml/support/procedural/src/storage/transformation.rs b/substrate/srml/support/procedural/src/storage/transformation.rs
index ac3896bd6a9cfbdfa1f122311b7061e895e74509..b66b8fc52f3f5d8464cfe5463453332193483242 100644
--- a/substrate/srml/support/procedural/src/storage/transformation.rs
+++ b/substrate/srml/support/procedural/src/storage/transformation.rs
@@ -239,8 +239,6 @@ fn decl_store_extra_genesis(
 
 						let storage = (RefCell::new(&mut r), PhantomData::<Self>::default());
 						let v = (#builder)(&self);
-						let v = Encode::using_encoded(&v, |mut v| Decode::decode(&mut v))
-							.expect(#error_message);
 						<#name<#traitinstance> as #scrate::storage::generator::StorageValue<#typ>>::put(&v, &storage);
 					}}
 				},
@@ -252,8 +250,6 @@ fn decl_store_extra_genesis(
 						let storage = (RefCell::new(&mut r), PhantomData::<Self>::default());
 						let data = (#builder)(&self);
 						for (k, v) in data.into_iter() {
-							let v = Encode::using_encoded(&v, |mut v| Decode::decode(&mut v))
-								.expect(#error_message);
 							<#name<#traitinstance> as #scrate::storage::generator::StorageMap<#key_type, #typ>>::insert(&k, &v, &storage);
 						}
 					}}
diff --git a/substrate/srml/system/src/lib.rs b/substrate/srml/system/src/lib.rs
index 8f3fd1df8cbafc290695dbeae7d6e4f6e9eed2a8..84711aa48e19e920d4d7eb249dda26898ddcf62f 100644
--- a/substrate/srml/system/src/lib.rs
+++ b/substrate/srml/system/src/lib.rs
@@ -193,6 +193,13 @@ impl From<RawLog<substrate_primitives::H256>> for primitives::testing::DigestIte
 	}
 }
 
+// Create a Hash with 69 for each byte
+fn hash69<T: AsMut<[u8]> + Default>() -> T {
+	let mut h = T::default();
+	h.as_mut().iter_mut().for_each(|byte| *byte = 69);
+	h
+}
+
 decl_storage! {
 	trait Store for Module<T: Trait> as System {
 
@@ -200,12 +207,12 @@ decl_storage! {
 
 		ExtrinsicCount: Option<u32>;
 		AllExtrinsicsLen: Option<u32>;
-		pub BlockHash get(block_hash) build(|_| vec![(T::BlockNumber::zero(), [69u8; 32])]): map T::BlockNumber => T::Hash;
+		pub BlockHash get(block_hash) build(|_| vec![(T::BlockNumber::zero(), hash69())]): map T::BlockNumber => T::Hash;
 		ExtrinsicData get(extrinsic_data): map u32 => Vec<u8>;
-		RandomSeed get(random_seed) build(|_| [0u8; 32]): T::Hash;
+		RandomSeed get(random_seed) build(|_| T::Hash::default()): T::Hash;
 		/// The current block number being processed. Set by `execute_block`.
-		Number get(block_number) build(|_| 1u64): T::BlockNumber;
-		ParentHash get(parent_hash) build(|_| [69u8; 32]): T::Hash;
+		Number get(block_number) build(|_| T::BlockNumber::sa(1u64)): T::BlockNumber;
+		ParentHash get(parent_hash) build(|_| hash69()): T::Hash;
 		ExtrinsicsRoot get(extrinsics_root): T::Hash;
 		Digest get(digest): T::Digest;