diff --git a/ethchain/block.go b/ethchain/block.go
index 321af6183588bff671c42d6a21d7f062defe60ae..5b06fd58d2633dee5e50b9ffa508feefcf440d37 100644
--- a/ethchain/block.go
+++ b/ethchain/block.go
@@ -130,8 +130,10 @@ func (block *Block) CalcGasLimit(parent *Block) *big.Int {
 		return ethutil.BigPow(10, 6)
 	}
 
-	previous := new(big.Int).Mul(big.NewInt(1023), parent.GasLimit)
-	current := new(big.Rat).Mul(new(big.Rat).SetInt(block.GasUsed), big.NewRat(6, 5))
+	// ((1024-1) * parent.gasLimit + (gasUsed * 6 / 5)) / 1024
+
+	previous := new(big.Int).Mul(big.NewInt(1024-1), parent.GasLimit)
+	current := new(big.Rat).Mul(new(big.Rat).SetInt(parent.GasUsed), big.NewRat(6, 5))
 	curInt := new(big.Int).Div(current.Num(), current.Denom())
 
 	result := new(big.Int).Add(previous, curInt)