diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 75fa1cb..525a3a5 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -2113,17 +2113,18 @@
 	find completion candidates instead of the standard prefix-based
 	matching.  This option can contain the following values:
 
-	keyword		keywords in the current file |i_CTRL-X_CTRL-N|
-			keywords with the ".", "w", "b", "u", "U" and
-			"k{dict}" flags in 'complete'. |i_CTRL-N| |i_CTRL-P|
+	keyword		keywords in the current file	|i_CTRL-X_CTRL-N|
+			keywords with flags ".", "w",	|i_CTRL-N| |i_CTRL-P|
+			"b", "u", "U" and "k{dict}" in 'complete'
+			keywords in 'dictionary'	|i_CTRL-X_CTRL-K|
 
-	files		file names  |i_CTRL-X_CTRL-F|
+	files		file names			|i_CTRL-X_CTRL-F|
 
-	whole_line	whole lines |i_CTRL-X_CTRL-L|
+	whole_line	whole lines			|i_CTRL-X_CTRL-L|
 
-	When used with 'completeopt' "longest" option, fuzzy collection can
-	identify the longest common string among the best fuzzy matches and
-	automatically insert it.
+	When used the 'completeopt' "longest" option value, fuzzy collection
+	can identify the longest common string among the best fuzzy matches
+	and insert it automatically.
 
 						*'completeitemalign'* *'cia'*
 'completeitemalign' 'cia' string (default: "abbr,kind,menu")
diff --git a/src/insexpand.c b/src/insexpand.c
index 35d20d0..49c7ee2 100644
--- a/src/insexpand.c
+++ b/src/insexpand.c
@@ -764,17 +764,14 @@
     static int
 cfc_has_mode(void)
 {
-    switch (ctrl_x_mode)
-    {
-	case CTRL_X_NORMAL:
-	    return (cfc_flags & CFC_KEYWORD) != 0;
-	case CTRL_X_FILES:
-	    return (cfc_flags & CFC_FILES) != 0;
-	case CTRL_X_WHOLE_LINE:
-	    return (cfc_flags & CFC_WHOLELINE) != 0;
-	default:
-	    return FALSE;
-    }
+    if (ctrl_x_mode_normal() || ctrl_x_mode_dictionary())
+	return (cfc_flags & CFC_KEYWORD) != 0;
+    else if (ctrl_x_mode_files())
+	return (cfc_flags & CFC_FILES) != 0;
+    else if (ctrl_x_mode_whole_line())
+	return (cfc_flags & CFC_WHOLELINE) != 0;
+    else
+	return FALSE;
 }
 
 /*
@@ -1792,7 +1789,7 @@
     int		add_r;
     char_u	*leader = NULL;
     int		leader_len = 0;
-    int		in_fuzzy_collect = cfc_has_mode() && ctrl_x_mode_normal();
+    int		in_fuzzy_collect = cfc_has_mode();
     int		score = 0;
     int		len = 0;
     char_u	*line_end = NULL;
diff --git a/src/testdir/test_ins_complete.vim b/src/testdir/test_ins_complete.vim
index e2a69f3..5d0e540 100644
--- a/src/testdir/test_ins_complete.vim
+++ b/src/testdir/test_ins_complete.vim
@@ -2955,8 +2955,17 @@
   call feedkeys("Gofuzzy\<C-X>\<C-N>\<C-N>\<C-N>\<C-N>\<CR>\<Esc>0", 'tx!')
   call assert_equal('completefuzzycollect', getline(line('.') - 1))
 
+  " keywords in 'dictonary'
+  call writefile(['hello', 'think'], 'test_dict.txt', 'D')
+  set dict=test_dict.txt
+  call feedkeys("Sh\<C-X>\<C-K>\<C-N>\<CR>\<Esc>0", 'tx!')
+  call assert_equal('hello', getline(line('.') - 1))
+  call feedkeys("Sh\<C-X>\<C-K>\<C-N>\<C-N>\<CR>\<Esc>0", 'tx!')
+  call assert_equal('think', getline(line('.') - 1))
+
   bw!
   bw!
+  set dict&
   set completeopt& cfc& cpt&
 endfunc
 
diff --git a/src/version.c b/src/version.c
index f65999a..b9fcedc 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1201,
+/**/
     1200,
 /**/
     1199,
