diff --git a/src/cmdexpand.c b/src/cmdexpand.c
index ca669c0..9bcea7e 100644
--- a/src/cmdexpand.c
+++ b/src/cmdexpand.c
@@ -2877,13 +2877,7 @@
 		ga_clear_strings(&ga);
 		return FAIL;
 	    }
-
-	    for (i = 0; i < ga.ga_len; ++i)
-	    {
-		fuzmatch = &((fuzmatch_str_T *)ga.ga_data)[i];
-		vim_free(fuzmatch->str);
-	    }
-	    ga_clear(&ga);
+	    fuzmatch_str_free(ga.ga_data, ga.ga_len);
 	    return FAIL;
 	}
 
diff --git a/src/proto/search.pro b/src/proto/search.pro
index 0548fca..8fa01da 100644
--- a/src/proto/search.pro
+++ b/src/proto/search.pro
@@ -41,5 +41,6 @@
 void f_matchfuzzy(typval_T *argvars, typval_T *rettv);
 void f_matchfuzzypos(typval_T *argvars, typval_T *rettv);
 int fuzzy_match_str(char_u *str, char_u *pat);
-int fuzzymatches_to_strmatches(fuzmatch_str_T *fuzmatch, char_u ***matches, int	count, int funcsort);
+void fuzmatch_str_free(fuzmatch_str_T *fuzmatch, int count);
+int fuzzymatches_to_strmatches(fuzmatch_str_T *fuzmatch, char_u ***matches, int count, int funcsort);
 /* vim: set ft=c : */
diff --git a/src/search.c b/src/search.c
index 6a52415..470bde2 100644
--- a/src/search.c
+++ b/src/search.c
@@ -5014,6 +5014,21 @@
 }
 
 /*
+ * Free an array of fuzzy string matches "fuzmatch[count]".
+ */
+    void
+fuzmatch_str_free(fuzmatch_str_T *fuzmatch, int count)
+{
+    int i;
+
+    if (fuzmatch == NULL)
+	return;
+    for (i = 0; i < count; ++i)
+	vim_free(fuzmatch[i].str);
+    vim_free(fuzmatch);
+}
+
+/*
  * Copy a list of fuzzy matches into a string list after sorting the matches by
  * the fuzzy score. Frees the memory allocated for 'fuzmatch'.
  * Returns OK on success and FAIL on memory allocation failure.
@@ -5033,9 +5048,7 @@
     *matches = ALLOC_MULT(char_u *, count);
     if (*matches == NULL)
     {
-	for (i = 0; i < count; i++)
-	    vim_free(fuzmatch[i].str);
-	vim_free(fuzmatch);
+	fuzmatch_str_free(fuzmatch, count);
 	return FAIL;
     }
 
diff --git a/src/version.c b/src/version.c
index 57e1fed..95486ba 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4732,
+/**/
     4731,
 /**/
     4730,
