diff -upr a/includes/jplayer_style_plugin.inc b/includes/jplayer_style_plugin.inc
--- includes/jplayer_style_plugin.inc	2010-05-01 05:28:08.000000000 +0100
+++ includes/jplayer_style_plugin.inc	2011-02-15 17:13:37.000000000 +0000
@@ -45,9 +45,20 @@ class jplayer_style_plugin extends views
       '#multiple' => TRUE,
       '#size' => 4,
       '#default_value' => $this->options['path_field'],
-      '#description' => t('Select the fields that will contain a file path to an mp3 file. If multiple fields are selected, the first one that contains a value will be used. This field will be hidden from view unless there are no other fields visible'),
+      '#description' => t('Select the fields that will contain a file path to an mp3 file. If multiple fields are selected, the first one that contains a value will be used. This field will be hidden from view.'),
       '#weight' => -5,
     );
+
+    $form['label_field'] = array(
+      '#type' => 'select',
+      '#title' => t('Label fields'),
+      '#options' => $options,
+      '#multiple' => TRUE,
+      '#size' => 4,
+      '#default_value' => $this->options['label_field'],
+      '#description' => t('Select the fields you wish to use for the clickable track label. If multiple fields are selected, the first one that contains a value will be used. If no field is selected, the filename will be used.'),
+      '#weight' => -4,
+    );
   }

   // Ensure we have all the settings necessary to render into tabs.
@@ -84,23 +95,40 @@ class jplayer_style_plugin extends views

     foreach ($sets as $title => $records) {
       foreach ($records as $row_index => $row) {
-        $filepath = NULL;
+
+        $label = $file = NULL;
+
+        // Loop through the possible path fields, loading the first file thats found.
         foreach ($this->options['path_field'] as $field_name) {
           if (isset($row->{$fields[$field_name]->field_alias})) {
-            $filepath = $row->{$fields[$field_name]->field_alias};
+            $file = field_file_load($row->{$fields[$field_name]->field_alias});
             break;
           }
         }

-        $this->view->row_index = $row_index;
-        $label = trim(strip_tags($this->row_plugin->render($row)));
-        if (empty($label)) {
-          $label = basename($filepath);
+        // Loop through the possible label fields, setting it to the first value found.
+        if (!empty($this->options['label_field'])) {
+          foreach ($this->options['label_field'] as $field_name) {
+            if (isset($row->{$fields[$field_name]->field_alias})) {
+              $label = $row->{$fields[$field_name]->field_alias};
+              break;
+            }
+          }
         }
+        else {
+          // If no label field setting has been made, use the filename.
+          $file_info = pathinfo($file['filepath']);
+          $label = basename($file['filename'], '.' . $file_info['extension']);
+        }
+
+        // Render the fields into a variable.
+        $this->view->row_index = $row_index;
+        $rendered_fields = $this->row_plugin->render($row);

         $items[] = array(
-          'url' => file_create_url($filepath),
-          'label' => $label,
+          'url' => file_create_url($file['filepath']),
+          'label' => check_plain($label),
+          'fields' => $rendered_fields,
         );
       }
     }
@@ -128,6 +156,16 @@ class jplayer_style_plugin extends views
     return $output;
   }

+  // Override the get_field functionality. Don't render fields selected as path or label fields.
+  function get_field($index, $field) {
+    if (in_array($field, array_merge($this->options['path_field'], $this->options['label_field']))) {
+      return;
+    }
+    else {
+      return parent::get_field($index, $field);
+    }
+  }
+
   // Because we don't provide templates, but Views may complain when visiting
   // the theme information if it can't find any. Specify the name of our theme
   // function to keep it from causing any errors.
diff -upr a/includes/jplayer.theme.inc b/includes/jplayer.theme.inc
--- includes/jplayer.theme.inc	2011-01-15 15:19:18.000000000 +0000
+++ includes/jplayer.theme.inc	2011-02-15 16:16:00.000000000 +0000
@@ -73,9 +73,7 @@ function template_preprocess_jplayer_pla
  * Preprocess function for jplayer.tpl.php when displaying a view as a playlist.
  */
 function template_preprocess_jplayer_view_playlist(&$vars) {
-  if (!$vars['element']['#item']['fid'])
-    return;
-
+
   jplayer_add();

   $count = count($vars['items']);
diff -upr a/jplayer.module b/jplayer.module
--- jplayer.module	2011-01-15 15:19:18.000000000 +0000
+++ jplayer.module	2011-02-15 12:12:20.000000000 +0000
@@ -110,8 +110,8 @@ function jplayer_add($add = TRUE) {
   }

   if (isset($filepath)) {
-    $jplayer_js = jplayer_get_file_path('jplayer.js');
-    $jplayer_css = jplayer_get_file_path('jplayer.css');
+    $jplayer_js = jplayer_get_file_path('jplayer.js');
+    $jplayer_css = jplayer_get_file_path('jplayer.css');
     $settings = array('jPlayer' => array(
       'swfPath' => base_path() . variable_get('jplayer_directory', 'sites/all/libraries/jplayer'),
       'autoPlay' => (int) variable_get('jplayer_autoplay', ''),
@@ -141,7 +141,7 @@ function jplayer_add($add = TRUE) {
 }

 /**
- * Returns path to the most appropriate file
+ * Returns path to the most appropriate file
  *
  * @param $filename
  *   Name of the file to find
diff -upr a/theme/jplayer.tpl.php b/theme/jplayer.tpl.php
--- theme/jplayer.tpl.php	2011-01-15 15:19:19.000000000 +0000
+++ theme/jplayer.tpl.php	2011-02-15 16:36:10.000000000 +0000
@@ -41,11 +41,11 @@
     <ul>
       <?php if ($mode == 'playlist'): ?>
         <?php foreach ($items as $number => $item): ?>
-          <li<?php print $item['class'] ? ' class="' . $item['class'] . '"' : '' ?>><a href="<?php print $item['url']; ?>" title="<?php print check_plain($item['label']); ?>"><?php print check_plain($item['label']); ?></a></li>
+          <li<?php print $item['class'] ? ' class="' . $item['class'] . '"' : '' ?>><a href="<?php print $item['url']; ?>" title="<?php print check_plain($item['label']); ?>"><?php print $item['label']; ?></a><?php print $item['fields']; ?></li>
         <?php endforeach; ?>
       <?php else: ?>
         <li><?php print check_plain($item['label']); ?></li>
       <?php endif; ?>
     </ul>
   </div>
-</div>
\ No newline at end of file
+</div>
