diff --git a/src/option.c b/src/option.c
index 92ed1ec..f0e7727 100644
--- a/src/option.c
+++ b/src/option.c
@@ -3269,27 +3269,6 @@
     return NULL;
 }
 
-#if defined(FEAT_LINEBREAK) || defined(PROTO)
-/*
- * Called when the 'breakat' option changes value.
- */
-    char *
-did_set_breakat(optset_T *args UNUSED)
-{
-    char_u	*p;
-    int		i;
-
-    for (i = 0; i < 256; i++)
-	breakat_flags[i] = FALSE;
-
-    if (p_breakat != NULL)
-	for (p = p_breakat; *p; p++)
-	    breakat_flags[*p] = TRUE;
-
-    return NULL;
-}
-#endif
-
 /*
  * Process the updated 'buflisted' option value.
  */
diff --git a/src/optionstr.c b/src/optionstr.c
index 2d809a3..c049b3b 100644
--- a/src/optionstr.c
+++ b/src/optionstr.c
@@ -1208,6 +1208,25 @@
 
 #if defined(FEAT_LINEBREAK) || defined(PROTO)
 /*
+ * The 'breakat' option is changed.
+ */
+    char *
+did_set_breakat(optset_T *args UNUSED)
+{
+    char_u	*p;
+    int		i;
+
+    for (i = 0; i < 256; i++)
+	breakat_flags[i] = FALSE;
+
+    if (p_breakat != NULL)
+	for (p = p_breakat; *p; p++)
+	    breakat_flags[*p] = TRUE;
+
+    return NULL;
+}
+
+/*
  * The 'breakindentopt' option is changed.
  */
     char *
diff --git a/src/proto/option.pro b/src/proto/option.pro
index effa813..be7ee95 100644
--- a/src/proto/option.pro
+++ b/src/proto/option.pro
@@ -29,7 +29,6 @@
 char *did_set_ballooneval(optset_T *args);
 char *did_set_balloonevalterm(optset_T *args);
 char *did_set_binary(optset_T *args);
-char *did_set_breakat(optset_T *args);
 char *did_set_buflisted(optset_T *args);
 char *did_set_cmdheight(optset_T *args);
 char *did_set_compatible(optset_T *args);
diff --git a/src/proto/optionstr.pro b/src/proto/optionstr.pro
index cfd1982..340ffc4 100644
--- a/src/proto/optionstr.pro
+++ b/src/proto/optionstr.pro
@@ -20,6 +20,7 @@
 char *did_set_backupext_or_patchmode(optset_T *args);
 char *did_set_belloff(optset_T *args);
 int expand_set_belloff(optexpand_T *args, int *numMatches, char_u ***matches);
+char *did_set_breakat(optset_T *args);
 char *did_set_breakindentopt(optset_T *args);
 int expand_set_breakindentopt(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_browsedir(optset_T *args);
diff --git a/src/version.c b/src/version.c
index 0dfa2d8..7dca96a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    74,
+/**/
     73,
 /**/
     72,
