diff --git a/substrate/core/state-machine/src/basic.rs b/substrate/core/state-machine/src/basic.rs
index e922db260cf02bb1344b8c0c786b29efd32173f9..0ed2598060239c3180def0fac31e01e6bbca7ba1 100644
--- a/substrate/core/state-machine/src/basic.rs
+++ b/substrate/core/state-machine/src/basic.rs
@@ -22,8 +22,7 @@ use crate::backend::{Backend, InMemory};
 use hash_db::Hasher;
 use trie::trie_root;
 use primitives::offchain;
-use primitives::storage::well_known_keys::{HEAP_PAGES, is_child_storage_key};
-use parity_codec::Encode;
+use primitives::storage::well_known_keys::is_child_storage_key;
 use super::{ChildStorageKey, Externalities};
 use log::warn;
 
@@ -42,10 +41,9 @@ impl BasicExternalities {
 
 	/// Create a new instance of `BasicExternalities` with children
 	pub fn new_with_children(
-		mut top: HashMap<Vec<u8>, Vec<u8>>,
+		top: HashMap<Vec<u8>, Vec<u8>>,
 		children: HashMap<Vec<u8>, HashMap<Vec<u8>, Vec<u8>>>,
 	) -> Self {
-		top.insert(HEAP_PAGES.to_vec(), 8u64.encode());
 		BasicExternalities {
 			top,
 			children,
@@ -188,7 +186,7 @@ mod tests {
 		ext.set_storage(b"doe".to_vec(), b"reindeer".to_vec());
 		ext.set_storage(b"dog".to_vec(), b"puppy".to_vec());
 		ext.set_storage(b"dogglesworth".to_vec(), b"cat".to_vec());
-		const ROOT: [u8; 32] = hex!("0b33ed94e74e0f8e92a55923bece1ed02d16cf424e124613ddebc53ac3eeeabe");
+		const ROOT: [u8; 32] = hex!("0b41e488cccbd67d1f1089592c2c235f5c5399b053f7fe9152dd4b5f279914cd");
 		assert_eq!(ext.storage_root(), H256::from(ROOT));
 	}
 
@@ -231,4 +229,12 @@ mod tests {
 		ext.kill_child_storage(child());
 		assert_eq!(ext.child_storage(child(), b"doe"), None);
 	}
+
+	#[test]
+	fn basic_externalities_is_empty() {
+		// Make sure no values are set by default in `BasicExternalities`.
+		let (storage, child_storage) = BasicExternalities::new(Default::default()).into_storages();
+		assert!(storage.is_empty());
+		assert!(child_storage.is_empty());
+	}
 }