Index: src/wp-admin/includes/class-wp-filesystem-ftpext.php
===================================================================
--- src/wp-admin/includes/class-wp-filesystem-ftpext.php	(revision 35918)
+++ src/wp-admin/includes/class-wp-filesystem-ftpext.php	(working copy)
@@ -322,37 +322,65 @@ class WP_Filesystem_FTPext extends WP_Fi
 		if ( !empty($filelist) )
 			foreach ( $filelist as $delete_file )
 				$this->delete( trailingslashit($file) . $delete_file['name'], $recursive, $delete_file['type'] );
 		return @ftp_rmdir($this->link, $file);
 	}
 
 	/**
 	 * @access public
 	 *
 	 * @param string $file
 	 * @return bool
 	 */
 	public function exists( $file ) {
 		$path = dirname( $file );
 		$filename = basename( $file );
+		$hidden = ( '.' === substr( $filename, 0, 1 ) );
 
-		$file_list = @ftp_nlist( $this->link, '-a ' . $path );
+		// Attempt an NLST, relying upon the server to show hidden files if needed
+		$file_list = @ftp_nlist( $this->link, $path );
 		if ( $file_list ) {
 			$file_list = array_map( 'basename', $file_list );
+			if ( in_array( $filename, $file_list ) ) {
+				return true;
+			}
+		}
+
+		// If it's a hidden file, attempt both NLST and LIST with -a for compat.
+		if ( $hidden ) {
+			// Try NLIST with `-a`
+			$file_list = @ftp_nlist( $this->link, '-a ' . $path );
+			if ( $file_list ) {
+				$file_list = array_map( 'basename', $file_list );
+				if ( in_array( $filename, $file_list ) ) {
+					return true;
+				}
+			}
+
+			// Try LIST -a
+			$file_list = @ftp_rawlist( $this->link, '-a ' . $file );
+
+			if ( empty( $file_list ) && $this->is_dir( $file ) ) {
+				// File is an empty directory.
+				return true;
+			}
+
+			// Empty list = no file, so invert.
+			return !empty( $file_list );
 		}
 
-		return $file_list && in_array( $filename, $file_list );
+		return false;
 	}
 
 	/**
 	 * @access public
 	 *
 	 * @param string $file
 	 * @return bool
 	 */
 	public function is_file($file) {
 		return $this->exists($file) && !$this->is_dir($file);
 	}
 
 	/**
 	 * @access public
 	 *
