diff --git a/polkadot/Cargo.lock b/polkadot/Cargo.lock
index 9c83bc1d95e4a3355c84c6e204da8b5730854d82..44ee556a90f767e4f77aff48449a97463a26242a 100644
--- a/polkadot/Cargo.lock
+++ b/polkadot/Cargo.lock
@@ -4353,6 +4353,7 @@ dependencies = [
  "sc-keystore",
  "sc-rpc",
  "sp-api",
+ "sp-block-builder",
  "sp-blockchain",
  "sp-consensus",
  "sp-consensus-babe",
diff --git a/polkadot/rpc/Cargo.toml b/polkadot/rpc/Cargo.toml
index 04ad82777c9292a8a10c4e47c0504256fe77c70d..687316a47d1e7f83ecd7cff869ecac1ca82897ac 100644
--- a/polkadot/rpc/Cargo.toml
+++ b/polkadot/rpc/Cargo.toml
@@ -24,3 +24,4 @@ txpool-api = { package = "sp-transaction-pool", git = "https://github.com/parity
 frame-rpc-system = { package = "substrate-frame-rpc-system", git = "https://github.com/paritytech/substrate", branch = "master"  }
 pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" }
 codec = { package = "parity-scale-codec", version = "1.3.0", default-features = false }
+sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "master" }
diff --git a/polkadot/rpc/src/lib.rs b/polkadot/rpc/src/lib.rs
index c3608d6342a24d486c699b8e610a6b599b5fce2a..6bddc8ad8dafeccb39f4d8248aa21c06224d3959 100644
--- a/polkadot/rpc/src/lib.rs
+++ b/polkadot/rpc/src/lib.rs
@@ -29,6 +29,7 @@ use sp_consensus_babe::BabeApi;
 use sc_client_api::light::{Fetcher, RemoteBlockchain};
 use sc_consensus_babe::Epoch;
 use sc_rpc::DenyUnsafe;
+use sp_block_builder::BlockBuilder;
 
 /// A type representing all RPC extensions.
 pub type RpcExtension = jsonrpc_core::IoHandler<sc_rpc::Metadata>;
@@ -87,6 +88,7 @@ pub fn create_full<C, P, UE, SC>(deps: FullDeps<C, P, SC>) -> RpcExtension where
 	C::Api: frame_rpc_system::AccountNonceApi<Block, AccountId, Nonce>,
 	C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi<Block, Balance, UE>,
 	C::Api: BabeApi<Block>,
+	C::Api: BlockBuilder<Block>,
 	P: TransactionPool + Sync + Send + 'static,
 	UE: codec::Codec + Send + Sync + 'static,
 	SC: SelectChain<Block> + 'static,
@@ -116,7 +118,7 @@ pub fn create_full<C, P, UE, SC>(deps: FullDeps<C, P, SC>) -> RpcExtension where
 	} = grandpa;
 
 	io.extend_with(
-		SystemApi::to_delegate(FullSystem::new(client.clone(), pool))
+		SystemApi::to_delegate(FullSystem::new(client.clone(), pool, deny_unsafe))
 	);
 	io.extend_with(
 		TransactionPaymentApi::to_delegate(TransactionPayment::new(client.clone()))
@@ -164,7 +166,7 @@ pub fn create_light<C, P, F, UE>(deps: LightDeps<C, F, P>) -> RpcExtension
 	} = deps;
 	let mut io = jsonrpc_core::IoHandler::default();
 	io.extend_with(
-		SystemApi::<AccountId, Nonce>::to_delegate(LightSystem::new(client, remote_blockchain, fetcher, pool))
+		SystemApi::<Hash, AccountId, Nonce>::to_delegate(LightSystem::new(client, remote_blockchain, fetcher, pool))
 	);
 	io
 }