diff --git a/Dropbox.make b/Dropbox.make
new file mode 100644
index 0000000..fd16515
--- /dev/null
+++ b/Dropbox.make
@@ -0,0 +1,20 @@
+; $Id$
+;
+; Dropbox & Dropbox Uploader makefile
+; ----------------
+; This makefile downloads the lastest versions of Dropbox and Dropbox Uploader
+; and place them at sites/all/libraries/Dropbox and
+; sites/all/libraries/DropboxUploader, respectively.
+
+core = 7.x
+api = 2
+
+libraries[Dropbox][download][type] = "get"
+libraries[Dropbox][download][url] = "https://github.com/BenTheDesigner/Dropbox/archive/master.zip"
+libraries[Dropbox][directory_name] = "dropbox"
+libraries[Dropbox][destination] = "libraries"
+
+libraries[DropboxUploader][download][type] = "get"
+libraries[DropboxUploader][download][url] = "https://github.com/jakajancar/DropboxUploader/archive/master.zip"
+libraries[DropboxUploader][directory_name] = "DropboxUploader"
+libraries[DropboxUploader][destination] = "libraries"
diff --git a/DropboxUploader.make b/DropboxUploader.make
deleted file mode 100644
index 7e5c6c7..0000000
--- a/DropboxUploader.make
+++ /dev/null
@@ -1,14 +0,0 @@
-; $Id$
-;
-; Dropbox Uploader makefile
-; ----------------
-; This makefile downloads the lastest version from Dropbox Uploader and 
-; places it sites/all/libraries/DropboxUploader.
-
-core = 7.x
-api = 2
-
-libraries[DropboxUploader][download][type] = "get"
-libraries[DropboxUploader][download][url] = "https://github.com/BenTheDesigner/Dropbox/archive/master.zip"
-libraries[DropboxUploader][directory_name] = "dropbox"
-libraries[DropboxUploader][destination] = "libraries"
\ No newline at end of file
diff --git a/ThawtePremiumServerCA.crt b/ThawtePremiumServerCA.crt
new file mode 100644
index 0000000..ef676de
--- /dev/null
+++ b/ThawtePremiumServerCA.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkEx
+FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
+VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
+biBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFByZW1pdW0gU2Vy
+dmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZlckB0aGF3dGUuY29t
+MB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYTAlpB
+MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsG
+A1UEChMUVGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRp
+b24gU2VydmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNl
+cnZlciBDQTEoMCYGCSqGSIb3DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNv
+bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2aovXwlue2oFBYo847kkE
+VdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIhUdib0GfQ
+ug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMR
+uHM/qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
+9w0BAQQFAAOBgQAmSCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUI
+hfzJATj/Tb7yFkJD57taRvvBxhEf8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JM
+pAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7tUCemDaYj+bvLpgcUQg==
+-----END CERTIFICATE-----
diff --git a/backup_migrate_dropbox.install b/backup_migrate_dropbox.install
index 160d859..7cb5a54 100644
--- a/backup_migrate_dropbox.install
+++ b/backup_migrate_dropbox.install
@@ -13,11 +13,11 @@ function backup_migrate_dropbox_requirements($phase) {
   $t = get_t();
   if ($phase == 'install') {
     if (!file_exists('sites/all/libraries/dropbox/Dropbox/API.php')) {
-      $requirements['dropbox'] = array(
-        'title' => $t('BenTheDesigner\'s Dropbox REST API'),
+      $requirements['php_5_3_sdk_for_the_dropbox_rest_api'] = array(
+        'title' => $t('BenTheDesigner\'s PHP 5.3 SDK for the Dropbox REST API'),
         'value' => $t('Missing'),
         'description' =>  $t(
-          'BenTheDesigner\'s Dropbox REST API library is missing, please download it from !link and place it at !directory',
+          'BenTheDesigner\'s PHP 5.3 SDK for the Dropbox REST API is missing, please download it from <a href="!link">!link</a> and place it at !directory',
           array(
             '!link' => 'https://github.com/BenTheDesigner/Dropbox',
             '!directory' => 'sites/all/libraries/dropbox',
@@ -27,7 +27,21 @@ function backup_migrate_dropbox_requirements($phase) {
       );
     }
   }
-  return $requirements;
-}
 
+  if (!file_exists('sites/all/libraries/DropboxUploader/DropboxUploader.php')) {
+    $requirements['dropbox_uploader'] = array(
+      'title' => $t('Jaka Jančar\'s Dropbox Uploader'),
+      'value' => $t('Missing'),
+      'description' =>  $t(
+        'Jaka Jančar\'s Dropbox Uploader is missing, please download it from <a href="!link">!link</a> and place it at !directory',
+        array(
+          '!link' => 'https://github.com/jakajancar/DropboxUploader/',
+          '!directory' => 'sites/all/libraries/DropboxUploader',
+        )
+      ),
+      'severity' => REQUIREMENT_ERROR,
+    );
+  }
 
+  return $requirements;
+}
diff --git a/backup_migrate_dropbox.module b/backup_migrate_dropbox.module
index f38af06..4e2791d 100644
--- a/backup_migrate_dropbox.module
+++ b/backup_migrate_dropbox.module
@@ -10,11 +10,26 @@
  */
 function backup_migrate_dropbox_backup_migrate_destination_types() {
   return array(
-    'dropbox' => array(
-      'type_name' => t('Dropbox'),
-      'description' => t('Save the backup files to a !link account.', array('!link' => l(t('Dropbox'), 'http://www.dropbox.com/'))),
-      'file' => drupal_get_path('module', 'backup_migrate_dropbox') . '/destinations.dropbox.inc',
-      'class' => 'backup_migrate_destination_dropbox',
+    'dropbox-rest-api' => array(
+      'type_name' => t('Dropbox REST API'),
+      'description' => t('Save the backup files to a !dropbox account using <a href="!link">BenTheDesigner\'s PHP 5.3 SDK for the Dropbox REST API</a>.',
+      array(
+        '!dropbox' => l(t('Dropbox'), 'http://www.dropbox.com/'),
+        '!link' => 'https://github.com/BenTheDesigner/Dropbox',
+      )),
+      'file' => drupal_get_path('module', 'backup_migrate_dropbox') . '/destinations.dropbox_rest_api.inc',
+      'class' => 'backup_migrate_destination_dropbox_rest_api',
+      'can_create' => TRUE,
+    ),
+    'dropbox-uploader' => array(
+      'type_name' => t('Dropbox Uploader'),
+      'description' => t('Save the backup files to a !dropbox account using <a href="!link">Jaka Jančar\'s Dropbox Uploader</a>.',
+      array(
+        '!dropbox' => l(t('Dropbox'), 'http://www.dropbox.com/'),
+        '!link' => 'https://github.com/jakajancar/DropboxUploader/',
+      )),
+      'file' => drupal_get_path('module', 'backup_migrate_dropbox') . '/destinations.dropbox_uploader.inc',
+      'class' => 'backup_migrate_destination_dropbox_uploader',
       'can_create' => TRUE,
     ),
   );
diff --git a/destinations.dropbox.inc b/destinations.dropbox.inc
deleted file mode 100644
index 4574876..0000000
--- a/destinations.dropbox.inc
+++ /dev/null
@@ -1,154 +0,0 @@
-<?php
-
-/**
- * @file
- * Functions to handle the dropbox backup destination.
- */
-
-/**
- * A destination for sending database backups to a Dropbox account.
- *
- * @ingroup backup_migrate_destinations
- */
-class backup_migrate_destination_dropbox extends backup_migrate_destination_remote {
-  var $supported_ops = array('scheduled backup', 'manual backup');
-  var $dropbox = NULL;
-
-  /**
-   * Save to to the Dropbox destination.
-   */
-  function save_file($file, $settings) {
-    $dropbox = $this->dropbox_object();
-    $dest_filename = realpath(variable_get('file_temporary_path', '')) . '/' . $file->file_info['filename'] . '.' . implode('.', $file->ext);
-    rename($file->filepath(), $dest_filename);
-
-    try {
-      $put = $dropbox->putFile($dest_filename, FALSE, $this->dest_url['path']);
-    } catch (Exception $e) {
-      watchdog(
-        'backup_migrate',
-        'There was a problem when we tried to save the file to Dropbox, the error message was: !error',
-        array('!error' => $e->getMessage()),
-        WATCHDOG_ERROR);
-      return FALSE;
-    }
-    return $file;
-  }
-
-  /**
-   * Get the form for the settings for this filter.
-   */
-  function edit_form() {
-    $form = parent::edit_form();
-
-    // TODO: add some help text here.
-    $form['description'] = array(
-      '#type' => 'markup',
-      '#weight' => -999,
-      '#markup' => t('In order to use your DropBox account as a Backup and Migrate destination,
-        you must create a DropBox "App" and obtain your app credentials and enter them below.
-        <ol><li>Create a DropBox App by logging into your DropBox account and going to
-        <a href="https://www.dropbox.com/developers/apps">https://www.dropbox.com/developers/apps</a>
-        and clicking the button to "Create an app". Be sure to give your app a descriptive name,
-        as the name you give it will be part of the path within your DropBox folder. For example,
-        if you create an app called "kittens", then DropBox will create an DropBox/Apps/kittens
-        directory in your DropBox folder.</li>
-        <li>Once the app is created, take note of your app\'s "App key" and "App secret" and enter
-        both of them below.</li>
-        <li>You may also enter a "path" that will be used inside your app\'s folder. For example,
-        if you enter "fluffy/white" as your path, then backups will be placed in the
-        DropBox/Apps/kittens/fluffy/white/ directory.</li>
-        <li>Enter a 32-charater encryption key. We\'re not 100% sure if this is the best way to
-        handle this, but for now, it works.</li></ol>
-      '),
-    );
-
-    $form['name']['#description'] = t('Enter a "friendly" name for this destination. Only appears as a descriptor in the Backup and Migrate administration screens.');
-
-    $form['scheme'] = array(
-      '#type' => 'value',
-      '#value' => 'https',
-    );
-
-    $form['host'] = array(
-      '#type' => 'value',
-      '#value' => 'www.dropbox.com',
-    );
-
-    $form['path'] = array(
-      '#type' => 'textfield',
-      '#title' => 'Path',
-      '#required' => FALSE,
-      '#description' => t('A relative folder inside your Dropbox App folder. For example, Dropbox/Apps/(your app name)/(whatever path you enter here).'),
-    );
-
-    $form['user'] = array(
-      '#type' => 'textfield',
-      '#title' => 'Dropbox App Key',
-      '#required' => TRUE,
-      '#description' => 'Enter the App key from Dropbox.com',
-    );
-
-    $form['pass'] = array(
-      '#type' => 'password',
-      '#title' => 'Dropbox App Secret',
-      '#required' => TRUE,
-      '#description' => 'Enter the App secret from Dropbox.com',
-    );
-
-    // TODO: figure out if this is the best way to do this.
-    $form['settings']['encryption_key'] = array(
-      '#type' => 'textfield',
-      '#title' => '32-byte encryption key',
-      '#required' => TRUE,
-      '#description' => 'Enter a 32-byte (character) encryption key. TODO: figure out a better way to handle this.',
-    );
-
-    return $form;
-  }
-
-  /**
-   * Submit the form for the settings for the files destination.
-   */
-  function edit_form_submit($form, &$form_state) {
-    // Add the 32-byte encryption key to the settings for this destination.
-    $form_state['values']['settings']['encryption_key'] = $form_state['values']['encryption_key'];
-    parent::edit_form_submit($form, $form_state);
-  }
-
-
-  /**
-   * Create the DropBox object from BenTheDesigner's PHP API.
-   */
-  function dropbox_object() {
-    require_once 'sites/all/libraries/dropbox/Dropbox/API.php';
-    if (!$this->dropbox) {
-      $key    = $this->dest_url['user'];
-      $secret = $this->dest_url['pass'];
-
-      // Check whether to use HTTPS and set the callback URL
-      $protocol = (!empty($_SERVER['HTTPS'])) ? 'https' : 'http';
-      $callback = $protocol . '://' . $_SERVER['HTTP_HOST'] . request_uri();
-
-      // Register a simple autoload function
-      // TODO: figure out if this is the best way to do this.
-      spl_autoload_register(function($class) {
-        $class = str_replace('\\', '/', $class);
-        require_once(libraries_get_path('dropbox') . '/' . $class . '.php');
-      });
-
-      // Instantiate the Encrypter and storage objects
-      $encrypter = new \Dropbox\OAuth\Storage\Encrypter($this->settings('encryption_key'));
-
-      // Create the storage object, passing it the Encrypter object
-      $storage = new \Dropbox\OAuth\Storage\Session($encrypter);
-
-      // Create the consumer and API objects
-      $OAuth = new \Dropbox\OAuth\Consumer\Curl($key, $secret, $storage, $callback);
-      $this->dropbox = new \Dropbox\API($OAuth);
-    }
-    return $this->dropbox;
-  }
-}
-
-
diff --git a/destinations.dropbox_rest_api.inc b/destinations.dropbox_rest_api.inc
new file mode 100644
index 0000000..1390c60
--- /dev/null
+++ b/destinations.dropbox_rest_api.inc
@@ -0,0 +1,153 @@
+<?php
+
+/**
+ * @file
+ * Functions to handle the Dropbox REST API backup destination.
+ */
+
+/**
+ * A destination for sending database backups to a Dropbox account using
+ * BenTheDesigner's PHP 5.3 SDK for the Dropbox REST API.
+ *
+ * @ingroup backup_migrate_destinations
+ */
+class backup_migrate_destination_dropbox_rest_api extends backup_migrate_destination_remote {
+  var $supported_ops = array('manual backup');
+  var $dropbox = NULL;
+
+  /**
+   * Save to to the Dropbox destination.
+   */
+  function save_file($file, $settings) {
+    $dropbox = $this->dropbox_object();
+    $dest_filename = realpath(variable_get('file_temporary_path', '')) . '/' . $file->file_info['filename'] . '.' . implode('.', $file->ext);
+    rename($file->filepath(), $dest_filename);
+
+    try {
+      $put = $dropbox->putFile($dest_filename, FALSE, $this->dest_url['path']);
+    } catch (Exception $e) {
+      watchdog(
+        'backup_migrate',
+        'There was a problem when we tried to save the file to Dropbox, the error message was: !error',
+        array('!error' => $e->getMessage()),
+        WATCHDOG_ERROR);
+      return FALSE;
+    }
+    return $file;
+  }
+
+  /**
+   * Get the form for the settings for this filter.
+   */
+  function edit_form() {
+    $form = parent::edit_form();
+
+    // TODO: add some help text here.
+    $form['description'] = array(
+      '#type' => 'markup',
+      '#weight' => -999,
+      '#markup' => t('In order to use your DropBox account as a Backup and Migrate destination,
+        you must create a DropBox "App" and obtain your app credentials and enter them below.
+        <ol><li>Create a DropBox App by logging into your DropBox account and going to
+        <a href="https://www.dropbox.com/developers/apps">https://www.dropbox.com/developers/apps</a>
+        and clicking the button to "Create an app". Be sure to give your app a descriptive name,
+        as the name you give it will be part of the path within your DropBox folder. For example,
+        if you create an app called "kittens", then DropBox will create an DropBox/Apps/kittens
+        directory in your DropBox folder.</li>
+        <li>Once the app is created, take note of your app\'s "App key" and "App secret" and enter
+        both of them below.</li>
+        <li>You may also enter a "path" that will be used inside your app\'s folder. For example,
+        if you enter "fluffy/white" as your path, then backups will be placed in the
+        DropBox/Apps/kittens/fluffy/white/ directory.</li>
+        <li>Enter a 32-charater encryption key. We\'re not 100% sure if this is the best way to
+        handle this, but for now, it works.</li></ol>
+      '),
+    );
+
+    $form['name']['#description'] = t('Enter a "friendly" name for this destination. Only appears as a descriptor in the Backup and Migrate administration screens.');
+
+    $form['scheme'] = array(
+      '#type' => 'value',
+      '#value' => 'https',
+    );
+
+    $form['host'] = array(
+      '#type' => 'value',
+      '#value' => 'www.dropbox.com',
+    );
+
+    $form['path'] = array(
+      '#type' => 'textfield',
+      '#title' => 'Path',
+      '#required' => FALSE,
+      '#description' => t('A relative folder inside your Dropbox App folder. For example, Dropbox/Apps/(your app name)/(whatever path you enter here).'),
+    );
+
+    $form['user'] = array(
+      '#type' => 'textfield',
+      '#title' => 'Dropbox App Key',
+      '#required' => TRUE,
+      '#description' => 'Enter the App key from Dropbox.com',
+    );
+
+    $form['pass'] = array(
+      '#type' => 'password',
+      '#title' => 'Dropbox App Secret',
+      '#required' => TRUE,
+      '#description' => 'Enter the App secret from Dropbox.com',
+    );
+
+    // TODO: figure out if this is the best way to do this.
+    $form['settings']['encryption_key'] = array(
+      '#type' => 'textfield',
+      '#title' => '32-byte encryption key',
+      '#required' => TRUE,
+      '#description' => 'Enter a 32-byte (character) encryption key. TODO: figure out a better way to handle this.',
+    );
+
+    return $form;
+  }
+
+  /**
+   * Submit the form for the settings for the files destination.
+   */
+  function edit_form_submit($form, &$form_state) {
+    // Add the 32-byte encryption key to the settings for this destination.
+    $form_state['values']['settings']['encryption_key'] = $form_state['values']['encryption_key'];
+    parent::edit_form_submit($form, $form_state);
+  }
+
+
+  /**
+   * Create the DropBox object from BenTheDesigner's PHP API.
+   */
+  function dropbox_object() {
+    require_once 'sites/all/libraries/dropbox/Dropbox/API.php';
+    if (!$this->dropbox) {
+      $key    = $this->dest_url['user'];
+      $secret = $this->dest_url['pass'];
+
+      // Check whether to use HTTPS and set the callback URL
+      $protocol = (!empty($_SERVER['HTTPS'])) ? 'https' : 'http';
+      $callback = $protocol . '://' . $_SERVER['HTTP_HOST'] . request_uri();
+
+      // Register a simple autoload function
+      // TODO: figure out if this is the best way to do this.
+      spl_autoload_register(function($class) {
+        $class = str_replace('\\', '/', $class);
+        require_once(libraries_get_path('dropbox') . '/' . $class . '.php');
+      });
+
+      // Instantiate the Encrypter and storage objects
+      $encrypter = new \Dropbox\OAuth\Storage\Encrypter($this->settings('encryption_key'));
+
+      // Create the storage object, passing it the Encrypter object
+      $storage = new \Dropbox\OAuth\Storage\Session($encrypter);
+
+      // Create the consumer and API objects
+      $OAuth = new \Dropbox\OAuth\Consumer\Curl($key, $secret, $storage, $callback);
+      $this->dropbox = new \Dropbox\API($OAuth);
+    }
+    return $this->dropbox;
+  }
+}
diff --git a/destinations.dropbox_uploader.inc b/destinations.dropbox_uploader.inc
new file mode 100644
index 0000000..7062554
--- /dev/null
+++ b/destinations.dropbox_uploader.inc
@@ -0,0 +1,68 @@
+<?php
+
+/**
+ * @file
+ * Functions to handle the Dropbox Uploader backup destination.
+ */
+
+/**
+ * A destination for sending database backups to a Dropbox account using Jaka
+ * Jančar's Dropbox Uploader.
+ *
+ * @ingroup backup_migrate_destinations
+ */
+class backup_migrate_destination_dropbox_uploader extends backup_migrate_destination_remote {
+  var $supported_ops = array('scheduled backup', 'manual backup');
+  var $dropbox = NULL;
+
+  /**
+   * Save to to the Dropbox destination.
+   */
+  function save_file($file, $settings) {
+    $dropbox = $this->dropbox_object();
+    $destination = $this->dest_url['path'];
+    if ('/' != $destination[0]) {
+      $destination = '/'. $destination;
+    }
+
+    $dest_filename = realpath(variable_get('file_temporary_path', '')) . '/' . $file->file_info['filename'] . '.' . implode('.', $file->ext);
+
+    rename($file->filepath(), $dest_filename);
+    try {
+      $dropbox->upload($dest_filename, $destination);
+    }
+    catch (Exception $e) {
+      watchdog('backup_migrate',
+               'There was a problem when we tried to save the file to Dropbox, the error message was: !error',
+               array('!error' => $e->getMessage()),
+               WATCHDOG_ERROR);
+      return FALSE;
+    }
+    return $file;
+  }
+
+  /**
+   * Get the form for the settings for this filter.
+   */
+  function edit_form() {
+    $form = parent::edit_form();
+    $form['scheme']['#type'] = 'value';
+    $form['scheme']['#value'] = 'https';
+    $form['host']['#type'] = 'value';
+    $form['host']['#value'] = 'www.dropbox.com';
+    $form['path']['#description'] = 'A relative folder inside your Dropbox account';
+    $form['user']['#title'] = 'Dropbox E-mail';
+    $form['pass']['#title'] = 'Dropbox Password';
+
+    return $form;
+  }
+
+  function dropbox_object() {
+    require_once 'sites/all/libraries/DropboxUploader/DropboxUploader.php';
+    if (!$this->dropbox) {
+      $this->dropbox = new DropboxUploader($this->dest_url['user'], $this->dest_url['pass']);
+      $this->dropbox->setCaCertificateFile('./'. drupal_get_path('module', 'backup_migrate_dropbox') .'/ThawtePremiumServerCA.crt');
+    }
+    return $this->dropbox;
+  }
+}
