diff --git a/Lib/test/string_tests.py b/Lib/test/string_tests.py
index e56bc02..31da13d 100644
--- a/Lib/test/string_tests.py
+++ b/Lib/test/string_tests.py
@@ -120,6 +120,14 @@
         self.checkequal(2, 'aaa', 'count', '', -1)
         self.checkequal(4, 'aaa', 'count', '', -10)
 
+        self.checkequal(1, '', 'count', '')
+        self.checkequal(0, '', 'count', '', 1, 1)
+        self.checkequal(0, '', 'count', '', sys.maxint, 0)
+
+        self.checkequal(0, '', 'count', 'xx')
+        self.checkequal(0, '', 'count', 'xx', 1, 1)
+        self.checkequal(0, '', 'count', 'xx', sys.maxint, 0)
+
         self.checkraises(TypeError, 'hello', 'count')
         self.checkraises(TypeError, 'hello', 'count', 42)
 
@@ -162,6 +170,14 @@
         self.checkraises(TypeError, 'hello', 'find')
         self.checkraises(TypeError, 'hello', 'find', 42)
 
+        self.checkequal(0, '', 'find', '')
+        self.checkequal(-1, '', 'find', '', 1, 1)
+        self.checkequal(-1, '', 'find', '', sys.maxint, 0)
+
+        self.checkequal(-1, '', 'find', 'xx')
+        self.checkequal(-1, '', 'find', 'xx', 1, 1)
+        self.checkequal(-1, '', 'find', 'xx', sys.maxint, 0)
+
         # For a variety of combinations,
         #    verify that str.find() matches __contains__
         #    and that the found substring is really at that location
diff --git a/Misc/NEWS b/Misc/NEWS
index 87d19cb..9ca2feb 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,9 @@
 Core and builtins
 -----------------
 
+- Issue #3967: Fixed a crash in the count() and find() methods of string-like
+  objects, when the "start" parameter is a huge value.
+
 - Issue #3936: The parser warnings for using "as" and "with" as variable names
   didn't fire after import statements.
 
diff --git a/Objects/stringlib/count.h b/Objects/stringlib/count.h
index 367a15c..eba37e9 100644
--- a/Objects/stringlib/count.h
+++ b/Objects/stringlib/count.h
@@ -13,11 +13,10 @@
 {
     Py_ssize_t count;
 
-    if (sub_len == 0) {
-        if (str_len < 0)
-            return 0; /* start > len(str) */
+    if (str_len < 0)
+        return 0; /* start > len(str) */
+    if (sub_len == 0)
         return str_len + 1;
-    }
 
     count = fastsearch(str, str_len, sub, sub_len, FAST_COUNT);
 
diff --git a/Objects/stringlib/find.h b/Objects/stringlib/find.h
index 4cdbb09..ffb9e36 100644
--- a/Objects/stringlib/find.h
+++ b/Objects/stringlib/find.h
@@ -14,11 +14,10 @@
 {
     Py_ssize_t pos;
 
-    if (sub_len == 0) {
-        if (str_len < 0)
-            return -1;
+    if (str_len < 0)
+        return -1;
+    if (sub_len == 0)
         return offset;
-    }
 
     pos = fastsearch(str, str_len, sub, sub_len, FAST_SEARCH);
 
