diff --git a/polkadot/Cargo.lock b/polkadot/Cargo.lock
index cf5c18798bbade9452fe0f026acac010fab97969..bfd6a53401fd2e91efba82bace238e5647409c15 100644
--- a/polkadot/Cargo.lock
+++ b/polkadot/Cargo.lock
@@ -451,7 +451,7 @@ dependencies = [
 [[package]]
 name = "ed25519"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -491,7 +491,7 @@ dependencies = [
 [[package]]
 name = "environmental"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 
 [[package]]
 name = "error-chain"
@@ -534,7 +534,7 @@ dependencies = [
 [[package]]
 name = "ethcore-io"
 version = "1.12.0"
-source = "git+https://github.com/paritytech/parity.git#c21c19bd6ca173d877a4157390856222e026e127"
+source = "git+https://github.com/paritytech/parity.git#108590d924bcc00e62b894de02516ffb2378be11"
 dependencies = [
  "crossbeam 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -571,7 +571,7 @@ dependencies = [
 [[package]]
 name = "ethkey"
 version = "0.3.0"
-source = "git+https://github.com/paritytech/parity.git#c21c19bd6ca173d877a4157390856222e026e127"
+source = "git+https://github.com/paritytech/parity.git#108590d924bcc00e62b894de02516ffb2378be11"
 dependencies = [
  "byteorder 1.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
  "edit-distance 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -631,7 +631,7 @@ dependencies = [
 [[package]]
 name = "fixed-hash"
 version = "0.2.2"
-source = "git+https://github.com/paritytech/parity-common.git#22209e14805e5764f7fe81259324d34eab179264"
+source = "git+https://github.com/paritytech/parity-common.git#abe18ea03c1faae5e9b3787b481086e796ff42fb"
 dependencies = [
  "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -732,7 +732,7 @@ dependencies = [
 [[package]]
 name = "hashdb"
 version = "0.2.1"
-source = "git+https://github.com/paritytech/parity-common.git#22209e14805e5764f7fe81259324d34eab179264"
+source = "git+https://github.com/paritytech/parity-common.git#abe18ea03c1faae5e9b3787b481086e796ff42fb"
 dependencies = [
  "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
@@ -957,7 +957,7 @@ dependencies = [
 [[package]]
 name = "kvdb"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/parity-common.git#22209e14805e5764f7fe81259324d34eab179264"
+source = "git+https://github.com/paritytech/parity-common.git#abe18ea03c1faae5e9b3787b481086e796ff42fb"
 dependencies = [
  "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common.git)",
@@ -975,7 +975,7 @@ dependencies = [
 [[package]]
 name = "kvdb-rocksdb"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/parity-common.git#22209e14805e5764f7fe81259324d34eab179264"
+source = "git+https://github.com/paritytech/parity-common.git#abe18ea03c1faae5e9b3787b481086e796ff42fb"
 dependencies = [
  "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1356,7 +1356,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 [[package]]
 name = "mem"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/parity.git#c21c19bd6ca173d877a4157390856222e026e127"
+source = "git+https://github.com/paritytech/parity.git#108590d924bcc00e62b894de02516ffb2378be11"
 
 [[package]]
 name = "memchr"
@@ -1379,13 +1379,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 [[package]]
 name = "memorydb"
 version = "0.2.1"
-source = "git+https://github.com/paritytech/parity-common.git#22209e14805e5764f7fe81259324d34eab179264"
+source = "git+https://github.com/paritytech/parity-common.git#abe18ea03c1faae5e9b3787b481086e796ff42fb"
 dependencies = [
  "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "hashdb 0.2.1 (git+https://github.com/paritytech/parity-common.git)",
  "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "plain_hasher 0.2.0 (git+https://github.com/paritytech/parity-common.git)",
- "rlp 0.2.1 (git+https://github.com/paritytech/parity-common.git)",
+ "rlp 0.2.2 (git+https://github.com/paritytech/parity-common.git)",
 ]
 
 [[package]]
@@ -1589,12 +1589,12 @@ dependencies = [
 [[package]]
 name = "parity-bytes"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/parity-common.git#22209e14805e5764f7fe81259324d34eab179264"
+source = "git+https://github.com/paritytech/parity-common.git#abe18ea03c1faae5e9b3787b481086e796ff42fb"
 
 [[package]]
 name = "parity-crypto"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/parity-common.git#22209e14805e5764f7fe81259324d34eab179264"
+source = "git+https://github.com/paritytech/parity-common.git#abe18ea03c1faae5e9b3787b481086e796ff42fb"
 dependencies = [
  "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1662,7 +1662,7 @@ dependencies = [
 [[package]]
 name = "patricia-trie"
 version = "0.2.1"
-source = "git+https://github.com/paritytech/parity-common.git#22209e14805e5764f7fe81259324d34eab179264"
+source = "git+https://github.com/paritytech/parity-common.git#abe18ea03c1faae5e9b3787b481086e796ff42fb"
 dependencies = [
  "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "hashdb 0.2.1 (git+https://github.com/paritytech/parity-common.git)",
@@ -1684,7 +1684,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 [[package]]
 name = "plain_hasher"
 version = "0.2.0"
-source = "git+https://github.com/paritytech/parity-common.git#22209e14805e5764f7fe81259324d34eab179264"
+source = "git+https://github.com/paritytech/parity-common.git#abe18ea03c1faae5e9b3787b481086e796ff42fb"
 dependencies = [
  "crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
@@ -1798,7 +1798,7 @@ dependencies = [
  "polkadot-runtime 0.1.0",
  "polkadot-statement-table 0.1.0",
  "polkadot-transaction-pool 0.1.0",
- "rhododendron 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rhododendron 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "substrate-bft 0.1.0 (git+https://github.com/paritytech/substrate)",
  "substrate-client 0.1.0 (git+https://github.com/paritytech/substrate)",
  "substrate-codec 0.1.0 (git+https://github.com/paritytech/substrate)",
@@ -1830,7 +1830,7 @@ dependencies = [
  "polkadot-availability-store 0.1.0",
  "polkadot-consensus 0.1.0",
  "polkadot-primitives 0.1.0",
- "rhododendron 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rhododendron 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "substrate-bft 0.1.0 (git+https://github.com/paritytech/substrate)",
  "substrate-codec 0.1.0 (git+https://github.com/paritytech/substrate)",
  "substrate-codec-derive 0.1.0 (git+https://github.com/paritytech/substrate)",
@@ -1999,7 +1999,7 @@ dependencies = [
 [[package]]
 name = "pwasm-alloc"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "pwasm-libc 0.1.0 (git+https://github.com/paritytech/substrate)",
  "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2008,7 +2008,7 @@ dependencies = [
 [[package]]
 name = "pwasm-libc"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 
 [[package]]
 name = "quick-error"
@@ -2165,7 +2165,7 @@ dependencies = [
 
 [[package]]
 name = "rhododendron"
-version = "0.3.1"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2187,13 +2187,13 @@ dependencies = [
 
 [[package]]
 name = "rlp"
-version = "0.2.1"
-source = "git+https://github.com/paritytech/parity-common.git#22209e14805e5764f7fe81259324d34eab179264"
+version = "0.2.2"
+source = "git+https://github.com/paritytech/parity-common.git#abe18ea03c1faae5e9b3787b481086e796ff42fb"
 dependencies = [
  "byteorder 1.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
  "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -2508,14 +2508,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 [[package]]
 name = "substrate-bft"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "ed25519 0.1.0 (git+https://github.com/paritytech/substrate)",
  "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "futures 0.1.23 (registry+https://github.com/rust-lang/crates.io-index)",
  "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
  "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "rhododendron 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rhododendron 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "substrate-codec 0.1.0 (git+https://github.com/paritytech/substrate)",
  "substrate-primitives 0.1.0 (git+https://github.com/paritytech/substrate)",
  "substrate-runtime-primitives 0.1.0 (git+https://github.com/paritytech/substrate)",
@@ -2527,7 +2527,7 @@ dependencies = [
 [[package]]
 name = "substrate-cli"
 version = "0.3.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "ansi_term 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "app_dirs 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2559,7 +2559,7 @@ dependencies = [
 [[package]]
 name = "substrate-client"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "ed25519 0.1.0 (git+https://github.com/paritytech/substrate)",
  "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2571,7 +2571,7 @@ dependencies = [
  "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
  "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "patricia-trie 0.2.1 (git+https://github.com/paritytech/parity-common.git)",
- "rlp 0.2.1 (git+https://github.com/paritytech/parity-common.git)",
+ "rlp 0.2.2 (git+https://github.com/paritytech/parity-common.git)",
  "slog 2.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "substrate-bft 0.1.0 (git+https://github.com/paritytech/substrate)",
  "substrate-codec 0.1.0 (git+https://github.com/paritytech/substrate)",
@@ -2589,7 +2589,7 @@ dependencies = [
 [[package]]
 name = "substrate-client-db"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "hashdb 0.2.1 (git+https://github.com/paritytech/parity-common.git)",
  "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common.git)",
@@ -2611,7 +2611,7 @@ dependencies = [
 [[package]]
 name = "substrate-codec"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
@@ -2619,7 +2619,7 @@ dependencies = [
 [[package]]
 name = "substrate-codec-derive"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "proc-macro2 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
  "quote 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2629,7 +2629,7 @@ dependencies = [
 [[package]]
 name = "substrate-executor"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "byteorder 1.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
  "ed25519 0.1.0 (git+https://github.com/paritytech/substrate)",
@@ -2637,7 +2637,7 @@ dependencies = [
  "hashdb 0.2.1 (git+https://github.com/paritytech/parity-common.git)",
  "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
- "parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "parking_lot 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde 1.0.71 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde_derive 1.0.71 (registry+https://github.com/rust-lang/crates.io-index)",
  "substrate-codec 0.1.0 (git+https://github.com/paritytech/substrate)",
@@ -2655,7 +2655,7 @@ dependencies = [
 [[package]]
 name = "substrate-extrinsic-pool"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "futures 0.1.23 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2669,7 +2669,7 @@ dependencies = [
 [[package]]
 name = "substrate-keyring"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "ed25519 0.1.0 (git+https://github.com/paritytech/substrate)",
  "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2679,7 +2679,7 @@ dependencies = [
 [[package]]
 name = "substrate-keystore"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "ed25519 0.1.0 (git+https://github.com/paritytech/substrate)",
  "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2695,7 +2695,7 @@ dependencies = [
 [[package]]
 name = "substrate-network"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "ed25519 0.1.0 (git+https://github.com/paritytech/substrate)",
@@ -2717,7 +2717,7 @@ dependencies = [
 [[package]]
 name = "substrate-network-libp2p"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "bytes 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)",
  "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2740,7 +2740,7 @@ dependencies = [
 [[package]]
 name = "substrate-primitives"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
  "byteorder 1.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2750,7 +2750,7 @@ dependencies = [
  "hashdb 0.2.1 (git+https://github.com/paritytech/parity-common.git)",
  "patricia-trie 0.2.1 (git+https://github.com/paritytech/parity-common.git)",
  "plain_hasher 0.2.0 (git+https://github.com/paritytech/parity-common.git)",
- "rlp 0.2.1 (git+https://github.com/paritytech/parity-common.git)",
+ "rlp 0.2.2 (git+https://github.com/paritytech/parity-common.git)",
  "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde 1.0.71 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde_derive 1.0.71 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2766,7 +2766,7 @@ dependencies = [
 [[package]]
 name = "substrate-rpc"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "jsonrpc-core 8.0.2 (git+https://github.com/paritytech/jsonrpc.git)",
@@ -2780,6 +2780,7 @@ dependencies = [
  "substrate-extrinsic-pool 0.1.0 (git+https://github.com/paritytech/substrate)",
  "substrate-primitives 0.1.0 (git+https://github.com/paritytech/substrate)",
  "substrate-runtime-primitives 0.1.0 (git+https://github.com/paritytech/substrate)",
+ "substrate-runtime-version 0.1.0 (git+https://github.com/paritytech/substrate)",
  "substrate-state-machine 0.1.0 (git+https://github.com/paritytech/substrate)",
  "tokio 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
@@ -2787,7 +2788,7 @@ dependencies = [
 [[package]]
 name = "substrate-rpc-servers"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "jsonrpc-core 8.0.2 (git+https://github.com/paritytech/jsonrpc.git)",
  "jsonrpc-http-server 8.0.1 (git+https://github.com/paritytech/jsonrpc.git)",
@@ -2802,7 +2803,7 @@ dependencies = [
 [[package]]
 name = "substrate-runtime-consensus"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde 1.0.71 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2819,7 +2820,7 @@ dependencies = [
 [[package]]
 name = "substrate-runtime-council"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "integer-sqrt 0.1.0 (git+https://github.com/paritytech/integer-sqrt-rs.git)",
@@ -2843,7 +2844,7 @@ dependencies = [
 [[package]]
 name = "substrate-runtime-democracy"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2865,7 +2866,7 @@ dependencies = [
 [[package]]
 name = "substrate-runtime-executive"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde 1.0.71 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2881,7 +2882,7 @@ dependencies = [
 [[package]]
 name = "substrate-runtime-io"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "ed25519 0.1.0 (git+https://github.com/paritytech/substrate)",
  "environmental 0.1.0 (git+https://github.com/paritytech/substrate)",
@@ -2896,7 +2897,7 @@ dependencies = [
 [[package]]
 name = "substrate-runtime-primitives"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "integer-sqrt 0.1.0 (git+https://github.com/paritytech/integer-sqrt-rs.git)",
  "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2914,7 +2915,7 @@ dependencies = [
 [[package]]
 name = "substrate-runtime-sandbox"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "substrate-codec 0.1.0 (git+https://github.com/paritytech/substrate)",
@@ -2927,7 +2928,7 @@ dependencies = [
 [[package]]
 name = "substrate-runtime-session"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2948,7 +2949,7 @@ dependencies = [
 [[package]]
 name = "substrate-runtime-staking"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2971,7 +2972,7 @@ dependencies = [
 [[package]]
 name = "substrate-runtime-std"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "pwasm-alloc 0.1.0 (git+https://github.com/paritytech/substrate)",
  "pwasm-libc 0.1.0 (git+https://github.com/paritytech/substrate)",
@@ -2981,7 +2982,7 @@ dependencies = [
 [[package]]
 name = "substrate-runtime-support"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "ed25519 0.1.0 (git+https://github.com/paritytech/substrate)",
  "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2996,7 +2997,7 @@ dependencies = [
 [[package]]
 name = "substrate-runtime-system"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -3013,7 +3014,7 @@ dependencies = [
 [[package]]
 name = "substrate-runtime-timestamp"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde 1.0.71 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -3031,7 +3032,7 @@ dependencies = [
 [[package]]
 name = "substrate-runtime-version"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "serde 1.0.71 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde_derive 1.0.71 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -3044,7 +3045,7 @@ dependencies = [
 [[package]]
 name = "substrate-serializer"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "serde 1.0.71 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde_json 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -3053,7 +3054,7 @@ dependencies = [
 [[package]]
 name = "substrate-service"
 version = "0.3.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "exit-future 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -3085,7 +3086,7 @@ dependencies = [
 [[package]]
 name = "substrate-state-db"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "log 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -3097,7 +3098,7 @@ dependencies = [
 [[package]]
 name = "substrate-state-machine"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "byteorder 1.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
  "hashdb 0.2.1 (git+https://github.com/paritytech/parity-common.git)",
@@ -3107,7 +3108,7 @@ dependencies = [
  "memorydb 0.2.1 (git+https://github.com/paritytech/parity-common.git)",
  "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "patricia-trie 0.2.1 (git+https://github.com/paritytech/parity-common.git)",
- "rlp 0.2.1 (git+https://github.com/paritytech/parity-common.git)",
+ "rlp 0.2.2 (git+https://github.com/paritytech/parity-common.git)",
  "substrate-primitives 0.1.0 (git+https://github.com/paritytech/substrate)",
  "triehash 0.2.0 (git+https://github.com/paritytech/parity-common.git)",
 ]
@@ -3115,7 +3116,7 @@ dependencies = [
 [[package]]
 name = "substrate-telemetry"
 version = "0.3.0"
-source = "git+https://github.com/paritytech/substrate#54e6d763a5d091ca1c41f431f8c7e76c384263d5"
+source = "git+https://github.com/paritytech/substrate#f3709852138d0bd2348d7e13505777c7acb7551e"
 dependencies = [
  "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -3482,11 +3483,11 @@ dependencies = [
 [[package]]
 name = "triehash"
 version = "0.2.0"
-source = "git+https://github.com/paritytech/parity-common.git#22209e14805e5764f7fe81259324d34eab179264"
+source = "git+https://github.com/paritytech/parity-common.git#abe18ea03c1faae5e9b3787b481086e796ff42fb"
 dependencies = [
  "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "hashdb 0.2.1 (git+https://github.com/paritytech/parity-common.git)",
- "rlp 0.2.1 (git+https://github.com/paritytech/parity-common.git)",
+ "rlp 0.2.2 (git+https://github.com/paritytech/parity-common.git)",
 ]
 
 [[package]]
@@ -3531,7 +3532,7 @@ dependencies = [
 [[package]]
 name = "uint"
 version = "0.3.0"
-source = "git+https://github.com/paritytech/parity-common.git#22209e14805e5764f7fe81259324d34eab179264"
+source = "git+https://github.com/paritytech/parity-common.git#abe18ea03c1faae5e9b3787b481086e796ff42fb"
 dependencies = [
  "byteorder 1.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
  "crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -3981,9 +3982,9 @@ dependencies = [
 "checksum regex-syntax 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "747ba3b235651f6e2f67dfa8bcdcd073ddb7c243cb21c442fc12395dfcac212d"
 "checksum relay 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1576e382688d7e9deecea24417e350d3062d97e32e45d70b1cde65994ff1489a"
 "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5"
-"checksum rhododendron 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3d2b4c928dfb981e491432f0809e93c99857112b0a348a93eee6b13e0bf0f0f3"
+"checksum rhododendron 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "289a6395497f70b8076bf5b9c223e1dc5c0a77619d0a75124f7d4c728d09d2d8"
 "checksum ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6f7d28b30a72c01b458428e0ae988d4149c20d902346902be881e3edc4bb325c"
-"checksum rlp 0.2.1 (git+https://github.com/paritytech/parity-common.git)" = "<none>"
+"checksum rlp 0.2.2 (git+https://github.com/paritytech/parity-common.git)" = "<none>"
 "checksum rlp 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "89db7f8dfdd5eb7ab3ac3ece7a07fd273a680b4b224cb231181280e8996f9f0b"
 "checksum rocksdb 0.4.5 (git+https://github.com/paritytech/rust-rocksdb)" = "<none>"
 "checksum rocksdb-sys 0.3.0 (git+https://github.com/paritytech/rust-rocksdb)" = "<none>"
diff --git a/polkadot/consensus/src/service.rs b/polkadot/consensus/src/service.rs
index d0c92962be3c60858276ac58b7ac3b1a5d481359..b7302b5d430d0c6e5b4c2f728fcfd1ebdcbaa797 100644
--- a/polkadot/consensus/src/service.rs
+++ b/polkadot/consensus/src/service.rs
@@ -224,7 +224,11 @@ impl Service {
 				interval.map_err(|e| debug!("Timer error: {:?}", e)).for_each(move |_| {
 					if let Ok(best_block) = c.best_block_header() {
 						let hash = best_block.hash();
-						if hash == prev_best && s.live_agreement() != Some(hash) {
+						let last_agreement = s.last_agreement();
+						let can_build_upon = last_agreement
+							.map_or(true, |x| !x.live || x.parent_hash != hash);
+
+						if hash == prev_best && can_build_upon {
 							debug!("Starting consensus round after a timeout");
 							start_bft(best_block, s.clone());
 						}