diff --git a/src/sbbs3/str_util.c b/src/sbbs3/str_util.c
index 3e0248b67f7a4dc2699183c5668f35935b179443..bbe56f9a9b7bb5c0b8dfc71d99587b93021840f1 100644
--- a/src/sbbs3/str_util.c
+++ b/src/sbbs3/str_util.c
@@ -194,28 +194,6 @@ BOOL DLLCALL trashcan(scfg_t* cfg, char* insearchof, char* name)
 	return(findstr(insearchof,fname));
 }
 
-/****************************************************************************/
-/* Add an IP address (with comment) to the IP filter/trashcan file			*/
-/****************************************************************************/
-BOOL DLLCALL filter_ip(scfg_t* cfg, char* prot, char* reason, char* ip_addr, char* username)
-{
-	char	filename[MAX_PATH+1];
-	char	tstr[64];
-    FILE*	fp;
-    time_t	now=time(NULL);
-
-	sprintf(filename,"%sip.can",cfg->text_dir);
-
-    if((fp=fopen(filename,"a"))==NULL)
-    	return(FALSE);
-
-    fprintf(fp,"\n;%s %s by %s on %s\n%s\n"
-    	,prot,reason,username,timestr(cfg,&now,tstr),ip_addr);
-
-    fclose(fp);
-	return(TRUE);
-}
-
 /****************************************************************************/
 /* Returns the number of characters in 'str' not counting ctrl-ax codes		*/
 /* or the null terminator													*/
diff --git a/src/sbbs3/userdat.c b/src/sbbs3/userdat.c
index 6e296d8db8300aec18210dd627941cf632c19b36..2a30c9c28fd968eb7cc082ddbafc4e85701583bc 100644
--- a/src/sbbs3/userdat.c
+++ b/src/sbbs3/userdat.c
@@ -2223,3 +2223,26 @@ BOOL DLLCALL is_download_free(scfg_t* cfg, uint dirnum, user_t* user)
 
 	return(chk_ar(cfg,cfg->dir[dirnum]->ex_ar,user));
 }
+
+/****************************************************************************/
+/* Add an IP address (with comment) to the IP filter/trashcan file			*/
+/* ToDo: Move somewhere more appropriate (filter.c?)						*/
+/****************************************************************************/
+BOOL DLLCALL filter_ip(scfg_t* cfg, char* prot, char* reason, char* ip_addr, char* username)
+{
+	char	filename[MAX_PATH+1];
+	char	tstr[64];
+    FILE*	fp;
+    time_t	now=time(NULL);
+
+	sprintf(filename,"%sip.can",cfg->text_dir);
+
+    if((fp=fopen(filename,"a"))==NULL)
+    	return(FALSE);
+
+    fprintf(fp,"\n;%s %s by %s on %s\n%s\n"
+    	,prot,reason,username,timestr(cfg,&now,tstr),ip_addr);
+
+    fclose(fp);
+	return(TRUE);
+}