diff --git a/include/experimental/string_view b/include/experimental/string_view
index d9593df..d423f39 100644
--- a/include/experimental/string_view
+++ b/include/experimental/string_view
@@ -375,7 +375,7 @@
         _LIBCPP_CONSTEXPR_AFTER_CXX11 int compare(basic_string_view __sv) const _NOEXCEPT
         {
             size_type __rlen = _VSTD::min( size(), __sv.size());
-            int __retval = __rlen == 0 ? 0 : _Traits::compare(data(), __sv.data(), __rlen);
+            int __retval = _Traits::compare(data(), __sv.data(), __rlen);
             if ( __retval == 0 ) // first __rlen chars matched
                 __retval = size() == __sv.size() ? 0 : ( size() < __sv.size() ? -1 : 1 );
             return __retval;
diff --git a/include/string b/include/string
index fe42bbf..9f4007a 100644
--- a/include/string
+++ b/include/string
@@ -636,7 +636,7 @@
         {return (unsigned char)__c1 < (unsigned char)__c2;}
 
     static inline int compare(const char_type* __s1, const char_type* __s2, size_t __n)
-        {return memcmp(__s1, __s2, __n);}
+        {return __n == 0 ? 0 : memcmp(__s1, __s2, __n);}
     static inline size_t length(const char_type* __s) {return strlen(__s);}
     static inline const char_type* find(const char_type* __s, size_t __n, const char_type& __a)
         {return (const char_type*)memchr(__s, to_int_type(__a), __n);}
@@ -681,7 +681,7 @@
         {return __c1 < __c2;}
 
     static inline int compare(const char_type* __s1, const char_type* __s2, size_t __n)
-        {return wmemcmp(__s1, __s2, __n);}
+        {return __n == 0 ? 0 : wmemcmp(__s1, __s2, __n);}
     static inline size_t length(const char_type* __s)
         {return wcslen(__s);}
     static inline const char_type* find(const char_type* __s, size_t __n, const char_type& __a)
diff --git a/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/compare.pass.cpp b/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/compare.pass.cpp
index a7190e7..ba58684 100644
--- a/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/compare.pass.cpp
+++ b/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/compare.pass.cpp
@@ -19,6 +19,7 @@
 int main()
 {
     assert(std::char_traits<char>::compare("", "", 0) == 0);
+    assert(std::char_traits<char>::compare(NULL, NULL, 0) == 0);
 
     assert(std::char_traits<char>::compare("1", "1", 1) == 0);
     assert(std::char_traits<char>::compare("1", "2", 1) < 0);
diff --git a/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/compare.pass.cpp b/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/compare.pass.cpp
index 9f8461e..b503907 100644
--- a/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/compare.pass.cpp
+++ b/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/compare.pass.cpp
@@ -21,6 +21,7 @@
 #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
 #if __cplusplus >= 201103L
     assert(std::char_traits<char16_t>::compare(u"", u"", 0) == 0);
+    assert(std::char_traits<char16_t>::compare(NULL, NULL, 0) == 0);
 
     assert(std::char_traits<char16_t>::compare(u"1", u"1", 1) == 0);
     assert(std::char_traits<char16_t>::compare(u"1", u"2", 1) < 0);
diff --git a/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/compare.pass.cpp b/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/compare.pass.cpp
index ee3019c..25f2099 100644
--- a/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/compare.pass.cpp
+++ b/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/compare.pass.cpp
@@ -21,6 +21,7 @@
 #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
 #if __cplusplus >= 201103L
     assert(std::char_traits<char32_t>::compare(U"", U"", 0) == 0);
+    assert(std::char_traits<char32_t>::compare(NULL, NULL, 0) == 0);
 
     assert(std::char_traits<char32_t>::compare(U"1", U"1", 1) == 0);
     assert(std::char_traits<char32_t>::compare(U"1", U"2", 1) < 0);
diff --git a/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/compare.pass.cpp b/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/compare.pass.cpp
index 046398b..124201b 100644
--- a/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/compare.pass.cpp
+++ b/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/compare.pass.cpp
@@ -19,6 +19,7 @@
 int main()
 {
     assert(std::char_traits<wchar_t>::compare(L"", L"", 0) == 0);
+    assert(std::char_traits<wchar_t>::compare(NULL, NULL, 0) == 0);
 
     assert(std::char_traits<wchar_t>::compare(L"1", L"1", 1) == 0);
     assert(std::char_traits<wchar_t>::compare(L"1", L"2", 1) < 0);
