diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 55e3cf8..199c261 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -7363,6 +7363,12 @@
 			suggestions is never more than the value of 'lines'
 			minus two.
 
+	timeout:{millisec}   Limit the time searching for suggestions to
+			{millisec} milli seconds.  Applies to the following
+			methods.  When omitted the limit is 5000. When
+			negative there is no limit.  {only works when built
+			with the +reltime feature}
+
 	file:{filename} Read file {filename}, which must have two columns,
 			separated by a slash.  The first column contains the
 			bad word, the second column the suggested good word.
diff --git a/src/spellsuggest.c b/src/spellsuggest.c
index e54b6fd..3cd4535 100644
--- a/src/spellsuggest.c
+++ b/src/spellsuggest.c
@@ -197,6 +197,8 @@
 #define PFD_PREFIXTREE	0xfe	// walking through the prefix tree
 #define PFD_NOTSPECIAL	0xfd	// highest value that's not special
 
+static long spell_suggest_timeout = 5000;
+
 static void spell_find_suggest(char_u *badptr, int badlen, suginfo_T *su, int maxcount, int banbadword, int need_cap, int interactive);
 #ifdef FEAT_EVAL
 static void spell_suggest_expr(suginfo_T *su, char_u *expr);
@@ -429,7 +431,10 @@
 	else if (STRCMP(buf, "double") == 0)
 	    f = SPS_DOUBLE;
 	else if (STRNCMP(buf, "expr:", 5) != 0
-		&& STRNCMP(buf, "file:", 5) != 0)
+		&& STRNCMP(buf, "file:", 5) != 0
+		&& (STRNCMP(buf, "timeout:", 8) != 0
+		    || (!VIM_ISDIGIT(buf[8])
+				  && !(buf[8] == '-' && VIM_ISDIGIT(buf[9])))))
 	    f = -1;
 
 	if (f == -1 || (sps_flags != 0 && f != 0))
@@ -842,6 +847,7 @@
     sps_copy = vim_strsave(p_sps);
     if (sps_copy == NULL)
 	return;
+    spell_suggest_timeout = 5000;
 
     // Loop over the items in 'spellsuggest'.
     for (p = sps_copy; *p != NUL; )
@@ -864,6 +870,9 @@
 	else if (STRNCMP(buf, "file:", 5) == 0)
 	    // Use list of suggestions in a file.
 	    spell_suggest_file(su, buf + 5);
+	else if (STRNCMP(buf, "timeout:", 8) == 0)
+	    // Limit the time searching for suggestions.
+	    spell_suggest_timeout = atol((char *)buf + 8);
 	else if (!did_intern)
 	{
 	    // Use internal method once.
@@ -1325,9 +1334,10 @@
 	}
     }
 #ifdef FEAT_RELTIME
-    // The loop may take an indefinite amount of time. Break out after five
-    // sectonds. TODO: add an option for the time limit.
-    profile_setlimit(5000, &time_limit);
+    // The loop may take an indefinite amount of time. Break out after some
+    // time.
+    if (spell_suggest_timeout > 0)
+	profile_setlimit(spell_suggest_timeout, &time_limit);
 #endif
 
     // Loop to find all suggestions.  At each round we either:
@@ -2659,7 +2669,8 @@
 		ui_breakcheck();
 		breakcheckcount = 1000;
 #ifdef FEAT_RELTIME
-		if (profile_passed_limit(&time_limit))
+		if (spell_suggest_timeout > 0
+					  && profile_passed_limit(&time_limit))
 		    got_int = TRUE;
 #endif
 	    }
diff --git a/src/testdir/test_spell.vim b/src/testdir/test_spell.vim
index a5c990a..e6f535b 100644
--- a/src/testdir/test_spell.vim
+++ b/src/testdir/test_spell.vim
@@ -446,6 +446,16 @@
   delfunc MySuggest3
 endfunc
 
+func Test_spellsuggest_timeout()
+  set spellsuggest=timeout:30
+  set spellsuggest=timeout:-123
+  set spellsuggest=timeout:999999
+  call assert_fails('set spellsuggest=timeout', 'E474:')
+  call assert_fails('set spellsuggest=timeout:x', 'E474:')
+  call assert_fails('set spellsuggest=timeout:-x', 'E474:')
+  call assert_fails('set spellsuggest=timeout:--9', 'E474:')
+endfunc
+
 func Test_spellinfo()
   new
   let runtime = substitute($VIMRUNTIME, '\\', '/', 'g')
diff --git a/src/version.c b/src/version.c
index 13de4a4..0e95130 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4249,
+/**/
     4248,
 /**/
     4247,
