drush sql-sync fails fetching the remote dump

I'm using the latest master of drush (2014/03/31) locally. When executing sql-sync (from a remote site to my local) it gives me the following output:

```bash
# drush sql-sync @MYALIAS default
You will destroy data in ### and replace with data from ###.
Do you really want to continue? (y/n): y
Starting to dump database on Source.                                                                                                                                   [ok]
Database dump saved to ###.sql.gz                                                                               [success]
Starting to discover temporary files directory on Destination.                                                                                                         [ok]
basename() expects parameter 1 to be string, array given sync.sql.inc:107                                                                                              [warning]
Copying dump file from Source to Destination.                                                                                                                          [ok]
You will destroy data from /tmp/ and replace with data from ###/public_html/Array
Aborting.                                                                                                                                                              [cancel]
Do you really want to continue? (y/n): Starting to import dump file onto Destination database.                                                                                                                [ok]
Query failed.  
```

I tried debugging and found that ```$source_dump_path``` gets an empty array here:

```php
if (!drush_get_option('no-dump')) {
    drush_log(dt('Starting to dump database on Source.'), 'ok');
    $return = drush_invoke_process($source, 'sql-dump', array(), $options);
    if ($return['error_status']) {
      return drush_set_error('sql-dump failed.');
    }
    else {
// >>>> THIS IS THE POINT <<<<
      $source_dump_path = $return['object'];
    }
  }
  else {
    $source_dump_path = drush_get_option('source-dump');
  }

  // Determine path/to/dump on destination.
  if (drush_get_option('target-dump')) {
    $destination_dump_path = drush_get_option('target-dump');
  }
  else {
    $tmp = '/tmp'; // Our fallback plan.
    drush_log(dt('Starting to discover temporary files directory on Destination.'), 'ok');
    $return = drush_invoke_process($destination, 'php-eval', array('return drush_find_tmp();'), array(), array('integrate' => FALSE, 'override-simulated' => TRUE));
    if (!$return['error_status']) {
      $tmp = $return['object'];
    }
    $destination_dump_path = $tmp . '/' . basename($source_dump_path);
  }
```

Any idea why it's happening? Maybe the problem is on the remote server (the drush version there)?

Thank you!