diff --git a/whisper/whisper.go b/whisper/whisper.go
index e5f686e43f305ea5b6267bf97a3644b399f6baac..0a49c1000bc73de30aa29e481428b6869bcb091d 100644
--- a/whisper/whisper.go
+++ b/whisper/whisper.go
@@ -255,7 +255,7 @@ func (self *Whisper) add(envelope *Envelope) error {
 	defer self.poolMu.Unlock()
 
 	// short circuit when a received envelope has already expired
-	if envelope.Expiry <= uint32(time.Now().Unix()) {
+	if envelope.Expiry < uint32(time.Now().Unix()) {
 		return nil
 	}
 
@@ -278,7 +278,6 @@ func (self *Whisper) add(envelope *Envelope) error {
 		go self.postEvent(envelope)
 	}
 	glog.V(logger.Detail).Infof("cached whisper envelope %x\n", envelope)
-
 	return nil
 }
 
diff --git a/whisper/whisper_test.go b/whisper/whisper_test.go
index 9cc235e7a51b767df415dec304c40c07b7a71129..094df373c2c04a1d665cbd952ba2fd0c29f072ef 100644
--- a/whisper/whisper_test.go
+++ b/whisper/whisper_test.go
@@ -179,9 +179,7 @@ func TestMessageExpiration(t *testing.T) {
 	node := startTestCluster(1)[0]
 
 	message := NewMessage([]byte("expiring message"))
-	envelope, err := message.Wrap(DefaultPoW, Options{
-		TTL: time.Second,
-	})
+	envelope, err := message.Wrap(DefaultPoW, Options{TTL: time.Second})
 	if err != nil {
 		t.Fatalf("failed to wrap message: %v", err)
 	}
@@ -197,17 +195,17 @@ func TestMessageExpiration(t *testing.T) {
 		t.Fatalf("message not found in cache")
 	}
 	// Wait for expiration and check cache again
-	time.Sleep(time.Second)     // wait for expiration
-	time.Sleep(expirationCycle) // wait for cleanup cycle
+	time.Sleep(time.Second)         // wait for expiration
+	time.Sleep(2 * expirationCycle) // wait for cleanup cycle
 
 	node.poolMu.RLock()
 	_, found = node.messages[envelope.Hash()]
 	node.poolMu.RUnlock()
-
 	if found {
 		t.Fatalf("message not expired from cache")
 	}
 
+	// Check that adding an expired envelope doesn't do anything.
 	node.add(envelope)
 	node.poolMu.RLock()
 	_, found = node.messages[envelope.Hash()]
@@ -215,5 +213,4 @@ func TestMessageExpiration(t *testing.T) {
 	if found {
 		t.Fatalf("message was added to cache")
 	}
-
 }