diff --git a/internal/asyncassertion/async_assertion.go b/internal/asyncassertion/async_assertion.go
index 7bbec43..b007383 100644
--- a/internal/asyncassertion/async_assertion.go
+++ b/internal/asyncassertion/async_assertion.go
@@ -95,6 +95,12 @@
 		return true
 	}
 
+	return MatchMayChangeInTheFuture(matcher, value)
+}
+
+//MatchMayChangeInTheFuture is a helper to call MatchMayChangeInTheFuture on an unknown matcher.
+//If matcher implements oracleMatcher, it will call the method. Otherwise just returns true.
+func MatchMayChangeInTheFuture(matcher types.GomegaMatcher, value interface{}) bool {
 	oracleMatcher, ok := matcher.(oracleMatcher)
 	if !ok {
 		return true
diff --git a/matchers/and.go b/matchers/and.go
index e20fbae..5092463 100644
--- a/matchers/and.go
+++ b/matchers/and.go
@@ -24,7 +24,7 @@
 	return true, nil
 }
 
-func (m *AndMatcher) FailureMessage(actual interface{}) (message string) {
+func (m *AndMatcher) FailureMessage(_ interface{}) (message string) {
 	return m.firstFailedMatchErrMsg
 }
 
diff --git a/matchers/not.go b/matchers/not.go
index 5ad0d63..0cacc94 100644
--- a/matchers/not.go
+++ b/matchers/not.go
@@ -1,6 +1,9 @@
 package matchers
 
-import "github.com/onsi/gomega/types"
+import (
+	"github.com/onsi/gomega/types"
+	"github.com/onsi/gomega/internal/asyncassertion"
+)
 
 type NotMatcher struct {
 	Matcher types.GomegaMatcher
@@ -21,3 +24,7 @@
 func (m *NotMatcher) NegatedFailureMessage(actual interface{}) (message string) {
 	return m.Matcher.FailureMessage(actual) // works beautifully
 }
+
+func (m *NotMatcher) MatchMayChangeInTheFuture(actual interface{}) bool {
+	return asyncassertion.MatchMayChangeInTheFuture(m.Matcher, actual) // just return m.Matcher's value
+}
diff --git a/matchers/not_test.go b/matchers/not_test.go
index e716178..e745651 100644
--- a/matchers/not_test.go
+++ b/matchers/not_test.go
@@ -3,6 +3,7 @@
 import (
 	. "github.com/onsi/ginkgo"
 	. "github.com/onsi/gomega"
+	. "github.com/onsi/gomega/matchers"
 )
 
 var _ = Describe("NotMatcher", func() {
@@ -40,4 +41,21 @@
 			})
 		})
 	})
+
+	Context("MatchMayChangeInTheFuture()", func() {
+		It("Propogates value from wrapped matcher", func() {
+			// wrap a Receive matcher, which does implement this method
+			channel := make(chan int)
+			close(channel)
+			var i int
+			m := Not(Receive(&i))
+			Expect(m.Match(channel)).To(BeTrue())
+			Expect(m.(*NotMatcher).MatchMayChangeInTheFuture(channel)).To(BeFalse())
+		})
+		It("Defaults to true", func() {
+			m := Not(Equal(1)) // Equal does not have this method
+			Expect(m.Match(2)).To(BeTrue())
+			Expect(m.(*NotMatcher).MatchMayChangeInTheFuture(2)).To(BeTrue()) // defaults to true
+		})
+	})
 })
