Index: /trunk/include/iprt/ftp.h
===================================================================
--- /trunk/include/iprt/ftp.h	(revision 82732)
+++ /trunk/include/iprt/ftp.h	(revision 82733)
@@ -126,4 +126,6 @@
     /** Command not implemented, superfluous at this site. */
     RTFTPSERVER_REPLY_ERROR_CMD_NOT_IMPL_SUPERFLUOUS = 202,
+    /** System status report. */
+    RTFTPSERVER_REPLY_SYSTEM_STATUS                  = 211,
     /** Service ready for new user. */
     RTFTPSERVER_REPLY_READY_FOR_NEW_USER             = 220,
Index: /trunk/src/VBox/Runtime/generic/ftp-server.cpp
===================================================================
--- /trunk/src/VBox/Runtime/generic/ftp-server.cpp	(revision 82732)
+++ /trunk/src/VBox/Runtime/generic/ftp-server.cpp	(revision 82733)
@@ -119,4 +119,6 @@
     /** Changes the current working directory. */
     RTFTPSERVER_CMD_CWD,
+    /** Reports features supported by the server. */
+    RTFTPSERVER_CMD_FEAT,
     /** Lists a directory. */
     RTFTPSERVER_CMD_LIST,
@@ -275,4 +277,5 @@
 static FNRTFTPSERVERCMD rtFtpServerHandleCDUP;
 static FNRTFTPSERVERCMD rtFtpServerHandleCWD;
+static FNRTFTPSERVERCMD rtFtpServerHandleFEAT;
 static FNRTFTPSERVERCMD rtFtpServerHandleLIST;
 static FNRTFTPSERVERCMD rtFtpServerHandleMODE;
@@ -312,4 +315,5 @@
     { RTFTPSERVER_CMD_CDUP,     "CDUP",         rtFtpServerHandleCDUP },
     { RTFTPSERVER_CMD_CWD,      "CWD",          rtFtpServerHandleCWD  },
+    { RTFTPSERVER_CMD_FEAT,     "FEAT",         rtFtpServerHandleFEAT },
     { RTFTPSERVER_CMD_LIST,     "LIST",         rtFtpServerHandleLIST },
     { RTFTPSERVER_CMD_MODE,     "MODE",         rtFtpServerHandleMODE },
@@ -329,4 +333,10 @@
 };
 
+/** Feature string which represents all commands we support in addition to RFC 959.
+ *  Must match the command table above.
+ *
+ *  Don't forget the terminating ";" at each feature. */
+#define RTFTPSERVER_FEATURES_STRING \
+    "SIZE;" /* Supports reporting file sizes. */
 
 /*********************************************************************************************************************************
@@ -810,4 +820,19 @@
 }
 
+static int rtFtpServerHandleFEAT(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
+{
+    RT_NOREF(cArgs, apcszArgs);
+
+    int rc = rtFtpServerSendReplyRc(pClient, RTFTPSERVER_REPLY_SYSTEM_STATUS); /* Features begin */
+    if (RT_SUCCESS(rc))
+    {
+        rc = rtFtpServerSendReplyStr(pClient, RTFTPSERVER_FEATURES_STRING);
+        if (RT_SUCCESS(rc))
+            rc = rtFtpServerSendReplyRc(pClient, RTFTPSERVER_REPLY_SYSTEM_STATUS); /* Features end */
+    }
+
+    return rc;
+}
+
 static int rtFtpServerHandleLIST(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
 {
