diff --git a/include/gmock/gmock-matchers.h b/include/gmock/gmock-matchers.h
index 6450f9b..822337b 100644
--- a/include/gmock/gmock-matchers.h
+++ b/include/gmock/gmock-matchers.h
@@ -979,7 +979,11 @@
   template <typename Pointer>
   bool MatchAndExplain(const Pointer& p,
                        MatchResultListener* /* listener */) const {
+#if GTEST_LANG_CXX11
+    return p == nullptr;
+#else  // GTEST_LANG_CXX11
     return GetRawPointer(p) == NULL;
+#endif  // GTEST_LANG_CXX11
   }
 
   void DescribeTo(::std::ostream* os) const { *os << "is NULL"; }
@@ -995,7 +999,11 @@
   template <typename Pointer>
   bool MatchAndExplain(const Pointer& p,
                        MatchResultListener* /* listener */) const {
+#if GTEST_LANG_CXX11
+    return p != nullptr;
+#else  // GTEST_LANG_CXX11
     return GetRawPointer(p) != NULL;
+#endif  // GTEST_LANG_CXX11
   }
 
   void DescribeTo(::std::ostream* os) const { *os << "isn't NULL"; }
diff --git a/scripts/gmock_doctor.py b/scripts/gmock_doctor.py
index e6e6a52..c6a8a90 100755
--- a/scripts/gmock_doctor.py
+++ b/scripts/gmock_doctor.py
@@ -362,7 +362,7 @@
                r'which is of non-class type \'(.*::)*(?P<class_name>.+)\*\'')
   clang_regex = (_CLANG_FILE_LINE_RE + r'error: member reference type '
                  r'\'(?P<class_name>.*?) *\' is a pointer; '
-                 r'maybe you meant to use \'->\'\?')
+                 r'(did you mean|maybe you meant) to use \'->\'\?')
   diagnosis = """
 The first argument to ON_CALL() and EXPECT_CALL() must be a mock *object*,
 not a *pointer* to it.  Please write '*(%(mock_object)s)' instead of
diff --git a/test/gmock-matchers_test.cc b/test/gmock-matchers_test.cc
index be2e900..494c85f 100644
--- a/test/gmock-matchers_test.cc
+++ b/test/gmock-matchers_test.cc
@@ -1025,6 +1025,15 @@
   EXPECT_FALSE(m.Matches(non_null_p));
 }
 
+#if GTEST_LANG_CXX11
+TEST(IsNullTest, StdFunction) {
+  const Matcher<std::function<void()>> m = IsNull();
+
+  EXPECT_TRUE(m.Matches(std::function<void()>()));
+  EXPECT_FALSE(m.Matches([]{}));
+}
+#endif  // GTEST_LANG_CXX11
+
 TEST(IsNullTest, ReferenceToConstScopedPtr) {
   const Matcher<const scoped_ptr<double>&> m = IsNull();
   const scoped_ptr<double> null_p;
@@ -1073,6 +1082,15 @@
   EXPECT_TRUE(m.Matches(non_null_p));
 }
 
+#if GTEST_LANG_CXX11
+TEST(NotNullTest, StdFunction) {
+  const Matcher<std::function<void()>> m = NotNull();
+
+  EXPECT_TRUE(m.Matches([]{}));
+  EXPECT_FALSE(m.Matches(std::function<void()>()));
+}
+#endif  // GTEST_LANG_CXX11
+
 TEST(NotNullTest, ReferenceToConstScopedPtr) {
   const Matcher<const scoped_ptr<double>&> m = NotNull();
   const scoped_ptr<double> null_p;
