diff --git a/includes/media.browser.inc b/includes/media.browser.inc
index 626fc00..01094c2 100644
--- a/includes/media.browser.inc
+++ b/includes/media.browser.inc
@@ -44,6 +44,7 @@ function media_browser($selected = NULL) {
 
   // Render plugins.
   $plugin_output = array();
+  $plugin_fields = array();
   foreach ($plugins as $key => $plugin_info) {
     // Support the old CTools style handler definition.
     if (!isset($plugin_info['class']) && !empty($plugin_info['handler'])) {
@@ -62,6 +63,13 @@ function media_browser($selected = NULL) {
     $plugin = new $plugin_info['class']($plugin_info, $params);
     if ($plugin->access()) {
       $plugin_output[$key] = $plugin->view();
+
+      // If one of the plugins is on the second step then let's just show those fields.
+      if (!empty($plugin_output[$key]['form']['#step']) && $plugin_output[$key]['form']['#step'] > 1) {
+        $plugin_fields = $plugin_output[$key]['form'];
+        break;
+      }
+
       if (!empty($plugin_output[$key]) && is_array($plugin_output[$key])) {
         $plugin_output[$key] += array(
           '#title' => $plugin_info['title'],
@@ -125,54 +133,59 @@ function media_browser($selected = NULL) {
   $tabs = array();
   $settings = array('media' => array('browser' => array()));
 
-  foreach (element_children($plugin_output, TRUE) as $key) {
-    // Add any JavaScript settings from the browser tab.
-    if (!empty($plugin_output[$key]['#settings'])) {
-      $settings['media']['browser'][$key] = $plugin_output[$key]['#settings'];
-    }
+  if (empty($plugin_fields)) {
+    foreach (element_children($plugin_output, TRUE) as $key) {
+      // Add any JavaScript settings from the browser tab.
+      if (!empty($plugin_output[$key]['#settings'])) {
+        $settings['media']['browser'][$key] = $plugin_output[$key]['#settings'];
+      }
+
+      // If this is a "ajax" style tab, add the href, otherwise an id. jQuery UI
+      // will use an href value to load content from that url
+      $tabid = 'media-tab-' . check_plain($key);
+      if (!empty($plugin_output[$key]['#callback'])) {
+        $href = $plugin_output[$key]['#callback'];
+      }
+      else {
+        $attributes = array(
+          'class' => array('media-browser-tab'),
+          'id' => $tabid,
+          'data-tabid' => $key,
+        );
+        // Create a div for each tab's content.
+        $plugin_output[$key] += array(
+          '#prefix' => '<div '. drupal_attributes($attributes) . ">\n",
+          '#suffix' => "</div>\n",
+        );
+      }
 
-    // If this is a "ajax" style tab, add the href, otherwise an id. jQuery UI
-    // will use an href value to load content from that url
-    $tabid = 'media-tab-' . check_plain($key);
-    if (!empty($plugin_output[$key]['#callback'])) {
-      $href = $plugin_output[$key]['#callback'];
-    }
-    else {
       $attributes = array(
-        'class' => array('media-browser-tab'),
-        'id' => $tabid,
+        'href' => '#' . $tabid,
         'data-tabid' => $key,
+        'title' => $plugin_output[$key]['#title'],
       );
-      // Create a div for each tab's content.
-      $plugin_output[$key] += array(
-        '#prefix' => '<div '. drupal_attributes($attributes) . ">\n",
-        '#suffix' => "</div>\n",
+      $tabs[]['element'] = array(
+        '#markup' => '<li><a' . drupal_attributes($attributes) . '>' . check_plain($plugin_output[$key]['#title']) . "</a></li>\n",
       );
     }
 
-    $attributes = array(
-      'href' => '#' . $tabid,
-      'data-tabid' => $key,
-      'title' => $plugin_output[$key]['#title'],
-    );
-    $tabs[]['element'] = array(
-      '#markup' => '<li><a' . drupal_attributes($attributes) . '>' . check_plain($plugin_output[$key]['#title']) . "</a></li>\n",
-    );
-  }
-
-  drupal_add_js($settings, 'setting');
+    drupal_add_js($settings, 'setting');
 
-  $output['title'] = array(
-    '#markup' => t('Select a file')
-  );
+    $output['title'] = array(
+      '#markup' => t('Select a file')
+    );
 
-  $output['tabset']['tabs'] = array(
-    '#theme' => 'menu_local_tasks',
-    '#attributes' => array('class' => array('tabs', 'primary')),
-    '#primary' => $tabs,
-  );
+    $output['tabset']['tabs'] = array(
+      '#theme' => 'menu_local_tasks',
+      '#attributes' => array('class' => array('tabs', 'primary')),
+      '#primary' => $tabs,
+    );
 
-  $output['tabset']['panes'] = $plugin_output;
+    $output['tabset']['panes'] = $plugin_output;
+  }
+  else {
+    $output['fields'] = $plugin_fields;
+  }
 
   return $output;
 }
