diff --git a/src/mbyte.c b/src/mbyte.c
index 4b78eee..fb0c482 100644
--- a/src/mbyte.c
+++ b/src/mbyte.c
@@ -733,8 +733,7 @@
 
     // When using Unicode, set default for 'fileencodings'.
     if (enc_utf8 && !option_was_set((char_u *)"fencs"))
-	set_string_option_direct((char_u *)"fencs", -1,
-		       (char_u *)"ucs-bom,utf-8,default,latin1", OPT_FREE, 0);
+	set_fencs_unicode();
 
 #if defined(HAVE_BIND_TEXTDOMAIN_CODESET) && defined(FEAT_GETTEXT)
     // GNU gettext 0.10.37 supports this feature: set the codeset used for
diff --git a/src/option.c b/src/option.c
index 33d29a1..dd44fe4 100644
--- a/src/option.c
+++ b/src/option.c
@@ -535,6 +535,19 @@
 #endif
 }
 
+static char_u *fencs_utf8_default = (char_u *)"ucs-bom,utf-8,default,latin1";
+
+/*
+ * Set the "fileencodings" option to the default value for when 'encoding' is
+ * utf-8.
+ */
+    void
+set_fencs_unicode()
+{
+    set_string_option_direct((char_u *)"fencs", -1, fencs_utf8_default,
+								  OPT_FREE, 0);
+}
+
 /*
  * Set an option to its default value.
  * This does not take care of side effects!
@@ -558,9 +571,12 @@
 	dvi = ((flags & P_VI_DEF) || compatible) ? VI_DEFAULT : VIM_DEFAULT;
 	if (flags & P_STRING)
 	{
+	    // 'fencs' default value depends on 'encoding'
+	    if (options[opt_idx].var == (char_u *)&p_fencs && enc_utf8)
+		set_fencs_unicode();
 	    // Use set_string_option_direct() for local options to handle
 	    // freeing and allocating the value.
-	    if (options[opt_idx].indir != PV_NONE)
+	    else if (options[opt_idx].indir != PV_NONE)
 		set_string_option_direct(NULL, opt_idx,
 				 options[opt_idx].def_val[dvi], opt_flags, 0);
 	    else
@@ -1684,6 +1700,8 @@
 #endif
 				    newval = term_bg_default();
 			    }
+			    else if ((char_u **)varp == &p_fencs && enc_utf8)
+				newval = fencs_utf8_default;
 
 			    // expand environment variables and ~ (since the
 			    // default value was already expanded, only
diff --git a/src/proto/option.pro b/src/proto/option.pro
index 8d672aa..25cfb65 100644
--- a/src/proto/option.pro
+++ b/src/proto/option.pro
@@ -1,5 +1,6 @@
 /* option.c */
 void set_init_1(int clean_arg);
+void set_fencs_unicode(void);
 void set_string_default(char *name, char_u *val);
 void set_number_default(char *name, long val);
 void set_local_options_default(win_T *wp, int do_buffer);
diff --git a/src/testdir/test_options.vim b/src/testdir/test_options.vim
index d640426..2f64d12 100644
--- a/src/testdir/test_options.vim
+++ b/src/testdir/test_options.vim
@@ -1140,6 +1140,14 @@
   call assert_equal('vt', &formatoptions)
   set formatoptions&vim
   call assert_equal('tcq', &formatoptions)
+
+  call assert_equal('ucs-bom,utf-8,default,latin1', &fencs)
+  set fencs=latin1
+  set fencs&
+  call assert_equal('ucs-bom,utf-8,default,latin1', &fencs)
+  set fencs=latin1
+  set all&
+  call assert_equal('ucs-bom,utf-8,default,latin1', &fencs)
 endfunc
 
 " Test for the 'cmdheight' option
diff --git a/src/version.c b/src/version.c
index 441826b..b685257 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2993,
+/**/
     2992,
 /**/
     2991,
