=== modified file 'includes/authorize.inc'
--- includes/authorize.inc	2010-12-29 04:07:52 +0000
+++ includes/authorize.inc	2010-12-30 08:39:29 +0000
@@ -86,7 +86,7 @@ function authorize_filetransfer_form($fo
       '#title' => t('@backend connection settings', array('@backend' => $backend['title'])),
     );
 
-    $form['connection_settings'][$name] += _authorize_filetransfer_connection_settings($name);
+    $form['connection_settings'][$name] += _authorize_filetransfer_connection_settings($name, array('connection_settings', $name));
 
     // Start non-JS code.
     if (isset($form_state['values']['connection_settings']['authorize_filetransfer_default']) && $form_state['values']['connection_settings']['authorize_filetransfer_default'] == $name) {
@@ -124,19 +124,21 @@ function authorize_filetransfer_form($fo
  *
  * @param $backend
  *   The name of the backend (e.g. 'ftp', 'ssh', etc).
+ * @param $parents
+ *   The #parents of the connection form so far.
  * @return
  *   Form API array of connection settings for the given backend.
  *
  * @see hook_filetransfer_backends()
  */
-function _authorize_filetransfer_connection_settings($backend) {
+function _authorize_filetransfer_connection_settings($backend, $parents = array()) {
   $defaults = variable_get('authorize_filetransfer_connection_settings_' . $backend, array());
   $form = array();
 
   // Create an instance of the file transfer class to get its settings form.
   $filetransfer = authorize_get_filetransfer($backend);
   if ($filetransfer) {
-    $form = $filetransfer->getSettingsForm();
+    $form = $filetransfer->getSettingsForm($parents);
   }
   // Fill in the defaults based on the saved settings, if any.
   _authorize_filetransfer_connection_settings_set_defaults($form, NULL, $defaults);

=== modified file 'includes/filetransfer/filetransfer.inc'
--- includes/filetransfer/filetransfer.inc	2010-12-01 00:23:36 +0000
+++ includes/filetransfer/filetransfer.inc	2010-12-30 08:43:01 +0000
@@ -319,8 +319,11 @@ abstract class FileTransfer {
    *
    * Implementing classes can either extend this form with fields collecting the
    * specific information they need, or override it entirely.
+   *
+   * @param $parents
+   *   The #parents of the connection form so far.
    */
-  public function getSettingsForm() {
+  public function getSettingsForm($parents = array()) {
     $form['username'] = array(
       '#type' => 'textfield',
       '#title' => t('Username'),
@@ -341,11 +344,15 @@ abstract class FileTransfer {
       '#title' => t('Host'),
       '#default_value' => 'localhost',
       '#description' => t('The connection will be created between your web server and the machine hosting the web server files. In the vast majority of cases, this will be the same machine, and "localhost" is correct.'),
+      // We do not want 'advanced' to enter into parents.
+      '#parents' => array_merge($parents, array('hostname')),
     );
     $form['advanced']['port'] = array(
       '#type' => 'textfield',
       '#title' => t('Port'),
       '#default_value' => NULL,
+      // We do not want 'advanced' to enter into parents.
+      '#parents' => array_merge($parents, array('port')),
     );
     return $form;
   }

=== modified file 'includes/filetransfer/ftp.inc'
--- includes/filetransfer/ftp.inc	2010-12-01 00:23:36 +0000
+++ includes/filetransfer/ftp.inc	2010-12-30 08:40:28 +0000
@@ -42,8 +42,8 @@ abstract class FileTransferFTP extends F
   /**
    * Returns the form to configure the FileTransfer class for FTP.
    */
-  public function getSettingsForm() {
-    $form = parent::getSettingsForm();
+  public function getSettingsForm($parents = array()) {
+    $form = parent::getSettingsForm($parents);
     $form['advanced']['port']['#default_value'] = 21;
     return $form;
   }

=== modified file 'includes/filetransfer/ssh.inc'
--- includes/filetransfer/ssh.inc	2010-12-01 00:23:36 +0000
+++ includes/filetransfer/ssh.inc	2010-12-30 08:40:47 +0000
@@ -25,7 +25,7 @@ class FileTransferSSH extends FileTransf
   }
 
   static function factory($jail, $settings) {
-    $settings['username'] = empty($settings['hostname']) ? '' : $settings['username'];
+    $settings['username'] = empty($settings['username']) ? '' : $settings['username'];
     $settings['password'] = empty($settings['password']) ? '' : $settings['password'];
     $settings['hostname'] = empty($settings['hostname']) ? 'localhost' : $settings['hostname'];
     $settings['port'] = empty($settings['port']) ? 22 : $settings['port'];
@@ -101,8 +101,8 @@ class FileTransferSSH extends FileTransf
   /**
    * Returns the form to configure the FileTransfer class for SSH.
    */
-  public function getSettingsForm() {
-    $form = parent::getSettingsForm();
+  public function getSettingsForm($parents = array()) {
+    $form = parent::getSettingsForm($parents);
     $form['advanced']['port']['#default_value'] = 22;
     return $form;
   }

