diff --git a/consensus/clique/clique.go b/consensus/clique/clique.go
index 21f048ce38a1edce7b2743e118b2ffbb5cbab86d..d2fb6934b9c29814ca5a3727f96eba88d77558c1 100644
--- a/consensus/clique/clique.go
+++ b/consensus/clique/clique.go
@@ -619,7 +619,7 @@ func (c *Clique) Seal(chain consensus.ChainReader, block *types.Block, stop <-ch
 		}
 	}
 	// Sweet, the protocol permits us to sign the block, wait for our time
-	delay := time.Until(time.Unix(header.Time.Int64(), 0))
+	delay := time.Unix(header.Time.Int64(), 0).Sub(time.Now())
 	if header.Difficulty.Cmp(diffNoTurn) == 0 {
 		// It's not our turn explicitly to sign, delay it a bit
 		wiggle := time.Duration(len(snap.Signers)/2+1) * wiggleTime