this is my code(simplified)
The problem is below.
Private Sub Ftp1_Done(ByVal ErrorCode As Integer, ByVal ErrorText As String) Handles Ftp1.Done
If ErrorCode = 0 Then
            
            Select Case EstatusActual
                Case Estatus.ObtenerLista '(Like State.GettingList in your examples)
                     If FoldersCollection.Count > 0 Then
                            
                          ' !!! Remote folder with no files ¡¡¡
                          Ftp1.RemotePath = FoldersCollection.Item(1)
'                            !!!!! Execute this line many times ¡¡¡¡¡
                             ---- > Ftp1.ListDir()
                            
                        End If
                Case Estatus.Terminar '(Like States.DoneAll in your examples)
                    Ftp1.Disconnect()
            End Select  
     Else
            'MANEJO DEL ERROR
            Indice = 0
            EstatusActual = Estatus.Terminar
            CajaError( El error es:    & ErrorText)
            
     End If 
End Sub [color=#abcdef]Text[/color]