diff --git a/src/sbbs3/listfile.cpp b/src/sbbs3/listfile.cpp
index 84bbf1a2a734776339e9c351cad945dfc29faffb..c76c270f2efa519d09c1f1d49e418eaa54d45ea8 100644
--- a/src/sbbs3/listfile.cpp
+++ b/src/sbbs3/listfile.cpp
@@ -1153,29 +1153,7 @@ int sbbs_t::listfileinfo(uint dirnum, char *filespec, long mode)
 						j=usrdirs[i]-1;
 					else j--;
 					CRLF;
-					if(findfile(&cfg,usrdir[i][j],f.name)) {
-						bprintf(text[FileAlreadyThere],f.name);
-						break; }
-					getextdesc(&cfg,f.dir,f.datoffset,ext);
-					removefiledat(&cfg,&f);
-					if(f.dir==cfg.upload_dir || f.dir==cfg.sysop_dir)
-						f.dateuled=time(NULL);
-					f.dir=usrdir[i][j];
-					addfiledat(&cfg,&f);
-					bprintf(text[MovedFile],f.name
-						,cfg.lib[cfg.dir[f.dir]->lib]->sname,cfg.dir[f.dir]->sname);
-					sprintf(str,"%s moved %s to %s %s"
-						,useron.alias
-						,f.name
-						,cfg.lib[cfg.dir[f.dir]->lib]->sname,cfg.dir[f.dir]->sname);
-					logline(nulstr,str);
-					if(!f.altpath) {    /* move actual file */
-						sprintf(str,"%s%s",cfg.dir[dirnum]->path,fname);
-						if(fexistcase(str)) {
-							sprintf(path,"%s%s",cfg.dir[f.dir]->path,fname);
-							mv(str,path,0); } }
-					if(f.misc&FM_EXTDESC)
-						putextdesc(&cfg,f.dir,f.datoffset,ext);
+					movefile(&f,usrdir[i][j]);
 					break;
 				case 'Q':   /* quit */
 					found=-1;