diff --git a/includes/media.browser.inc b/includes/media.browser.inc
index 811df7b..f45920d 100644
--- a/includes/media.browser.inc
+++ b/includes/media.browser.inc
@@ -11,7 +11,6 @@ function media_browser($selected = NULL) {
   $params = drupal_get_query_parameters();
   array_walk_recursive($params, '_media_recursive_check_plain');
   media_set_browser_params($params);
-  
   // If one or more files have been selected, the browser interaction is now
   // complete. Return empty page content to the dialog which now needs to close,
   // but populate Drupal.settings with information about the selected files.
@@ -35,11 +34,11 @@ function media_browser($selected = NULL) {
       $plugins[$key] = $plugin_data + array(
         '#module' => $module,
         '#weight' => 0,
+	'activeField' => $params['activeField'],
       );
       $plugins[$key]['#weight'] += count($plugins)/1000;
     }
   }
-  
   // Only the plugins in this array are loaded.
   if (!empty($params['enabledPlugins'])) {
     $plugins = array_intersect_key($plugins, array_fill_keys($params['enabledPlugins'], 1));
diff --git a/js/media.js b/js/media.js
index 91b2c3c..f9fc40c 100644
--- a/js/media.js
+++ b/js/media.js
@@ -32,6 +32,9 @@ Drupal.behaviors.mediaElement = {
 
       // When someone clicks the link to pick media (or clicks on an existing thumbnail)
       $('.launcher', this).bind('click', function () {
+
+	// Add the name of the field that called the browser to the browser options
+	Drupal.media.popups.mediaBrowser.activeField = this.id.replace(/_launcher.*/,'');
         // Launch the browser, providing the following callback function
         // @TODO: This should not be an anomyous function.
         Drupal.media.popups.mediaBrowser(function (mediaFiles) {
diff --git a/js/media.popups.js b/js/media.popups.js
index aea0710..0d3d30c 100644
--- a/js/media.popups.js
+++ b/js/media.popups.js
@@ -108,11 +108,13 @@ Drupal.media.popups.mediaBrowser.getDefaults = function () {
   return {
     global: {
       types: [], // Types to allow, defaults to all.
-      activePlugins: [] // If provided, a list of plugins which should be enabled.
+      activePlugins: [], // If provided, a list of plugins which should be enabled.
+      activeField: Drupal.media.popups.mediaBrowser.activeField // The field that called the browser
     },
     widget: { // Settings for the actual iFrame which is launched.
       src: Drupal.settings.media.browserUrl, // Src of the media browser (if you want to totally override it)
-      onLoad: Drupal.media.popups.mediaBrowser.mediaBrowserOnLoad // Onload function when iFrame loads.
+      onLoad: Drupal.media.popups.mediaBrowser.mediaBrowserOnLoad, // Onload function when iFrame loads.
+      activeField: Drupal.media.popups.mediaBrowser.activeField // The field that called the browser
     },
     dialog: Drupal.media.popups.getDialogOptions()
   };
diff --git a/media.module b/media.module
index f4715fb..2aede29 100644
--- a/media.module
+++ b/media.module
@@ -921,7 +921,7 @@ function media_element_process(&$element, &$form_state, $form) {
     '#type' => 'item',
     '#markup' => $markup,
     '#prefix' => '<div class="preview launcher">',
-    '#suffix' => '</div><a class="button launcher" href="#">' . t(media_variable_get('field_select_media_text')) . '</a><a class="button remove" href="#">' . t(media_variable_get('field_remove_media_text')) . '</a>',
+    '#suffix' => '</div><a class="button launcher" href="#" id="'.$element['#field_name'].'_launcher_'.$element['#delta'].'">' . t(media_variable_get('field_select_media_text')) . '</a><a class="button remove" href="#">' . t(media_variable_get('field_remove_media_text')) . '</a>',
   );
 
   /**
