diff --git a/mbtk/mbtk_lib/src/mbtk_ftp.c b/mbtk/mbtk_lib/src/mbtk_ftp.c
index 8c1340c..1376679 100755
--- a/mbtk/mbtk_lib/src/mbtk_ftp.c
+++ b/mbtk/mbtk_lib/src/mbtk_ftp.c
@@ -2056,8 +2056,12 @@
     if (list_remove(ftp_client_list, info))
     {
         int err;
-        sock_close(&info->net_info, &info->sock_info[FTP_SOCK_CTRL], FTP_TIMEOUT, &err);
-        sock_close(&info->net_info, &info->sock_info[FTP_SOCK_DATA], FTP_TIMEOUT, &err);
+        if(info->auth_type == FTP_AUTH_TYPE_NON) {
+            sock_close(&info->net_info, &info->sock_info[FTP_SOCK_CTRL], FTP_TIMEOUT, &err);
+            sock_close(&info->net_info, &info->sock_info[FTP_SOCK_DATA], FTP_TIMEOUT, &err);
+        } else {
+            mbtk_sock_deinit(info->ftp_ssl_handle);
+        }
         ftp_free_func(info);
     }
 
@@ -2090,17 +2094,32 @@
         info->state = FTP_STATE_CONNECTED;
     }
 
-    if (sock_close(&info->net_info, &info->sock_info[FTP_SOCK_CTRL], FTP_TIMEOUT, &err))
-    {
-        LOGE("Close ctrl socket fail[%d].", err);
-        return FTP_ERR_NET_CLOSE;
+    if(info->auth_type == FTP_AUTH_TYPE_NON) {
+        if (sock_close(&info->net_info, &info->sock_info[FTP_SOCK_CTRL], FTP_TIMEOUT, &err))
+        {
+            LOGE("Close ctrl socket fail[%d].", err);
+            return FTP_ERR_NET_CLOSE;
+        }
+
+        if (sock_close(&info->net_info, &info->sock_info[FTP_SOCK_DATA], FTP_TIMEOUT, &err))
+        {
+            LOGE("Close data socket fail[%d].", err);
+            return FTP_ERR_NET_CLOSE;
+        }
+    } else {
+        if(mbtk_sock_close(info->ftp_ssl_handle,info->session,6000,&err))
+        {
+            LOGE("Close ssl ctrl socket fail[%d].", err);
+            //return FTP_ERR_NET_CLOSE;
+        }
+
+        if(mbtk_sock_close(info->ftp_ssl_handle,info->session_data,6000,&err))
+        {
+            LOGE("Close ssl data socket fail[%d].", err);
+            //return FTP_ERR_NET_CLOSE;
+        }
     }
 
-    if (sock_close(&info->net_info, &info->sock_info[FTP_SOCK_DATA], FTP_TIMEOUT, &err))
-    {
-        LOGE("Close data socket fail[%d].", err);
-        return FTP_ERR_NET_CLOSE;
-    }
 
     info->state = FTP_STATE_NON;
     info->data_mode = FTP_MODE_PASSIVE;
