diff --git a/includes/media.browser.inc b/includes/media.browser.inc
index 65a02dd..9dc9086 100644
--- a/includes/media.browser.inc
+++ b/includes/media.browser.inc
@@ -456,6 +456,9 @@ EOF;
 
 /**
  * Adds properties to the passed in file that are needed by the media browser JS code.
+ *
+ * @param object $file
+ *   Drupal file object
  */
 function media_browser_build_media_item($file) {
   $preview = media_get_thumbnail_preview($file);
diff --git a/js/plugins/media.library.js b/js/plugins/media.library.js
index 1abe2a8..f6c61df 100644
--- a/js/plugins/media.library.js
+++ b/js/plugins/media.library.js
@@ -150,7 +150,6 @@ Drupal.media.browser.library.prototype.singleSelect = function (event) {
   var file = event.data.file;
   event.preventDefault();
   event.stopPropagation();
-
   $('.media-item').removeClass('selected');
   $('.media-item', $(this)).addClass('selected');
   lib.mediaSelected([event.data.file]);
diff --git a/js/plugins/media.views.js b/js/plugins/media.views.js
new file mode 100644
index 0000000..1d497ac
--- /dev/null
+++ b/js/plugins/media.views.js
@@ -0,0 +1,39 @@
+/**
+ * @file
+ * Handles the JS for the views file browser. Note that this does not currently
+ * support multiple file selection
+ */
+
+
+(function ($) {
+
+Drupal.behaviors.mediaViews = {
+  attach: function (context, settings) {
+
+    // Container for the files that get passed back to the browser
+    var files = {};
+
+    // Disable the links on media items list
+    $('.view-content ul.media-list-thumbnails a').click(function() {
+      return false;
+    });
+
+    // Catch the click on a media item
+    $('.media-item').bind('click', function () {
+      // Remove all currently selected files
+      $('.media-item').removeClass('selected');
+      // Set the current item to active
+      $(this).addClass('selected');
+      // Add this FID to the array of selected files
+      var fid = $(this).parent('a[data-fid]').attr('data-fid');
+      // Get the file from the settings which was stored in
+      // template_preprocess_media_views_view_media_browser()
+      var file = Drupal.settings.media.files[fid];
+      var files = new Array();
+      files.push(file);
+      Drupal.media.browser.selectMedia(files);
+    });
+  }
+}
+
+}(jQuery));
\ No newline at end of file
diff --git a/media.views.inc b/media.views.inc
index c957cf4..19ccc3a 100644
--- a/media.views.inc
+++ b/media.views.inc
@@ -64,6 +64,7 @@ function media_field_views_data($field) {
  * Display the view as a media browser.
  */
 function template_preprocess_media_views_view_media_browser(&$vars) {
+  module_load_include('inc', 'media', 'includes/media.browser');
   // Load file objects for each View result.
   $fids = array();
   foreach ($vars['rows'] as $index => $row) {
@@ -74,13 +75,24 @@ function template_preprocess_media_views_view_media_browser(&$vars) {
   // Render the preview for each file.
   foreach ($vars['rows'] as $index => $row) {
     $file = $files[$row->fid];
-    $preview = media_get_thumbnail_preview($file);
-    $preview = drupal_render($preview);
-    $vars['rows'][$index]->preview = $preview;
-    $vars['rows'][$index]->file = $file;
+    // Add url/preview to the file object
+    media_browser_build_media_item($file);
+    $vars['rows'][$index] = $file;
+
     // @todo Remove this hacky way of 'linking' each item to select it in the browser.
-    $vars['rows'][$index]->preview = l($preview, 'media/browser', array('html' => TRUE, 'query' => array('render' => 'media-popup', 'fid' => $row->fid)));
+    $vars['rows'][$index]->preview = l($file->preview, 'media/browser', array(
+      'html' => TRUE,
+      'attributes' => array(
+        'data-fid' => $row->fid,
+      ),
+      'query' => array(
+        'render' => 'media-popup',
+        'fid' => $row->fid
+      )
+    ));
   }
+  // Add the files to JS so that they are accessible inside the browser
+  drupal_add_js(array('media' => array('files' => $files)), 'setting');
 
   // Add classes and wrappers from the style plugin.
   $handler  = $vars['view']->style_plugin;
@@ -112,5 +124,6 @@ function template_preprocess_media_views_view_media_browser(&$vars) {
 
   // Add media browser javascript and CSS.
   drupal_add_js(drupal_get_path('module', 'media') . '/js/plugins/media.library.js');
+  drupal_add_js(drupal_get_path('module', 'media') . '/js/plugins/media.views.js');
   drupal_add_css(drupal_get_path('module', 'media') . '/js/plugins/media.library.css');
 }
