         [ drop unrecognized-command t ]
     } case [ handle-client-loop ] when ;
 
-: handle-client ( -- )
+TUPLE: ftp-server < threaded-server ;
+
+M: ftp-server handle-client* ( server -- )
+    drop
     [
         "" [
             host-name <ftp-client> client set

! See http://factorcode.org/license.txt for BSD license.
USING: accessors combinators io io.encodings.8-bit
io.encodings io.encodings.binary io.encodings.utf8 io.files
io.server io.sockets kernel math.parser namespaces sequences
ftp io.unix.launcher.parser unicode.case splitting assocs
classes io.server destructors calendar io.timeouts
io.streams.duplex threads continuations math
concurrency.promises byte-arrays ;
IN: ftp.server

        ] with-directory
    ] with-destructors ;

: <ftp-server> ( port -- server )
    ftp-server new-threaded-server
        swap >>insecure
        "ftp.server" >>name
        latin1 >>encoding ;

: ftpd ( port -- )
    <ftp-server> start-server ;

: ftpd-main ( -- ) 2100 ftpd ;

