diff --git a/src/files.c b/src/files.c
index 41fbb721a86f6c9fd3c70bb15033b186a0901050..e4f2458c43e0b4e5849c401ca993bee3ed2df0c5 100644
--- a/src/files.c
+++ b/src/files.c
@@ -2348,19 +2348,6 @@ int diralphasort(const void *va, const void *vb)
      * have to use multibyte strcasecmp() instead. */
     return mbstrcasecmp(a, b);
 }
-
-/* Free the memory allocated for array, which should contain len
- * elements. */
-void free_chararray(char **array, size_t len)
-{
-    if (array == NULL)
-	return;
-
-    for (; len > 0; len--)
-	free(array[len - 1]);
-
-    free(array);
-}
 #endif
 
 #ifdef ENABLE_TABCOMP
diff --git a/src/proto.h b/src/proto.h
index 48ee525aae1d13abfbd2f6ff19863164512e11e1..d0399bba1e8e8419ffb42cc9c17111838947d06f 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -315,7 +315,6 @@ void do_savefile(void);
 char *real_dir_from_tilde(const char *buf);
 #if defined(ENABLE_TABCOMP) || defined(ENABLE_BROWSER)
 int diralphasort(const void *va, const void *vb);
-void free_chararray(char **array, size_t len);
 #endif
 #ifdef ENABLE_TABCOMP
 char *input_tab(char *buf, bool allow_files, size_t *place,
@@ -591,6 +590,9 @@ void snuggly_fit(char **str);
 void null_at(char **data, size_t index);
 void unsunder(char *str, size_t true_len);
 void sunder(char *str);
+#if !defined(ENABLE_TINY) || defined(ENABLE_TABCOMP) || defined(ENABLE_BROWSER)
+void free_chararray(char **array, size_t len);
+#endif
 const char *fixbounds(const char *r);
 #ifdef ENABLE_SPELLER
 bool is_separate_word(size_t position, size_t length, const char *buf);
diff --git a/src/utils.c b/src/utils.c
index 80e0de60b078a2490e88566557a7f825b5020a39..cdf73041f2c8a098667c4f7860a2416322194b7b 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -193,6 +193,20 @@ void sunder(char *str)
     }
 }
 
+#if !defined(ENABLE_TINY) || defined(ENABLE_TABCOMP) || defined(ENABLE_BROWSER)
+/* Free the memory of the given array, which should contain len elements. */
+void free_chararray(char **array, size_t len)
+{
+    if (array == NULL)
+	return;
+
+    while (len > 0)
+	free(array[--len]);
+
+    free(array);
+}
+#endif
+
 /* Fix the regex if we're on platforms which require an adjustment
  * from GNU-style to BSD-style word boundaries. */
 const char *fixbounds(const char *r)