diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..7ac83b2
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+CVS
diff --git a/includes/videojs.admin.inc b/includes/videojs.admin.inc
index ca8e701..db8c7ba 100644
--- a/includes/videojs.admin.inc
+++ b/includes/videojs.admin.inc
@@ -44,6 +44,13 @@ function videojs_settings_form() {
     '#default_value' => variable_get('videojs_height', 264),
   );
 
+  $form['options']['videojs_fallback_module'] = array(
+    '#type' => 'select',
+    '#title' => t('Flash fallback module'),
+    '#default_value' => variable_get('videojs_fallback_module', 0),
+    '#options' => videojs_get_fallbacks(),
+  );
+
   $form = system_settings_form($form);
   $form['#validate'][] = 'videojs_settings_form_validate';
   $form['#submit'][] = 'videojs_settings_form_submit';
@@ -66,3 +73,13 @@ function videojs_settings_form_validate($form, &$form_state) {
 function videojs_settings_form_submit($form, &$form_state) {
   drupal_set_message(t('The videojs library (version @version) successfully found in the %directory directory.', array('@version' => $form_state['videojs_version'], '%directory' => $form_state['values']['videojs_directory'])));
 }
+
+/**
+ * Get possible fallback modules.
+ */
+function videojs_get_fallbacks() {
+  $valid_modules = array(1 => 'flowplayer');  
+  $options = array_intersect($valid_modules, module_list());
+  $options[0] = t('Unset');
+  return $options;
+}
diff --git a/includes/videojs.theme.inc b/includes/videojs.theme.inc
index 746fb2d..38e01f4 100644
--- a/includes/videojs.theme.inc
+++ b/includes/videojs.theme.inc
@@ -17,8 +17,13 @@ function template_preprocess_videojs_formatter_videojs(&$vars) {
   $number = 0;
   foreach ($node->$field_name as $item) {
     $vars['items'][] = $item;
+    if ($item['filemime'] == 'video/mp4') {
+      $fallback_url = file_create_url($item['filepath']);
+    }
   }
+  
   $vars['player_id'] = 'videojs-' . $vars['element']['#node']->nid . '-' . str_replace('_', '-', $vars['element']['#field_name']);
+  $vars['fallback'] = videojs_render_fallback($fallback_url);
 }
 
 /**
diff --git a/theme/videojs.tpl.php b/theme/videojs.tpl.php
index 03026fe..c5d39a1 100644
--- a/theme/videojs.tpl.php
+++ b/theme/videojs.tpl.php
@@ -9,17 +9,18 @@
   <div class="video-js-box" id="<?php print $player_id; ?>">
     <!-- Using the Video for Everybody Embed Code http://camendesign.com/code/video_for_everybody -->
     <video id="<?php print $player_id; ?>" class="video-js" width="<?php print(variable_get('videojs_width', 640))?>" height="<?php print(variable_get('videojs_height', 264))?>" controls="controls" preload="auto" poster="">
+      <?php static $videojs_sources; ?>
+      <?php $codecs = array('video/mp4' => 'avc1.42E01E, mp4a.40.2', 'video/webm' =>  'vp8, vorbis', 'video/ogg' => 'theora, vorbis', 'video/quicktime' => 'avc1.42E01E, mp4a.40.2' ); ?>
       <?php foreach ($items as $item):?>
-      <?php $filepath = file_create_url($item['filepath']); ?>
-        <?php if($item['filemime'] == 'video/mp4') ?>
-          <source src="<?=$filepath?>" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' />
-        <?php if($item['filemime'] == 'application/octet-stream') ?>
-          <source src="<?=$filepath?>" type='video/webm; codecs="vp8, vorbis"' />
-        <?php if($item['filemime'] == 'application/ogg') ?>
-          <source src="<?=$filepath?>" type='video/ogg; codecs="theora, vorbis"' />
+        <?php $filepath = file_create_url($item['filepath']); ?>
+        <?php $mimetype = $item['filemime']; ?>
+        <?php if (array_key_exists($mimetype, $codecs)):?>
+          <?php $mimetype = ($mimetype == 'video/quicktime') ? 'video/mp4' : $mimetype; ?>
+          <?php $videojs_sources .= "<source src=\"$filepath\" type='$mimetype; codecs=\"" . $codecs[$mimetype] . "\"' />"; ?>
+        <?php endif; ?>
       <?php endforeach; ?>
-      <!-- Flash Fallback. Use any flash video player here. Make sure to keep the vjs-flash-fallback class. -->
-      <!-- @TODO: Add Flowplayer on SWFTools or Flowplayer API modules -->
+      <?php print $videojs_sources; ?>
+      <?php print $fallback; ?>
     </video>
   </div>
   <!-- End VideoJS -->
\ No newline at end of file
diff --git a/videojs.module b/videojs.module
index b23aa50..d4e6dd0 100644
--- a/videojs.module
+++ b/videojs.module
@@ -150,3 +150,23 @@ function videojs_get_version($directory = NULL) {
 
   return $version;
 }
+
+/**
+ * Return flash fallback html from the selected module.
+ *
+ */
+function videojs_render_fallback($url) {
+  switch (variable_get('videojs_fallback_module', 0)) {
+    case 1: // flowplayer module
+      // Turn autoplay off like html5 does
+      $result = theme('flowplayer', array('clip' => array('url' => $url,'autoPlay' => FALSE,)),
+      'flowplayer', array('style' => 'width:' . variable_get('videojs_width', 640) . 'px; height:' . variable_get('videojs_height', 264) .'px;')
+      );
+      break;
+    
+    default:
+      $result = '<!-- ' . t("Flash fallback was not supplied by any module.") . ' -->';
+      break;
+  }
+  return $result;
+}
\ No newline at end of file
