diff --git a/commerce_braintree.commerce_braintree.inc b/commerce_braintree.commerce_braintree.inc
index 70c8961..4981205 100644
--- a/commerce_braintree.commerce_braintree.inc
+++ b/commerce_braintree.commerce_braintree.inc
@@ -32,12 +32,15 @@ function commerce_braintree_redirect_form($form, &$form_state, $order, $payment_
   // Retrieve the order balance instead of the order total, this allows you
   // to pay your order with multiple payment methods.
   $balance = commerce_payment_order_balance($order);
-  $amount = commerce_currency_amount_to_decimal($balance['amount'], commerce_default_currency());
+  $amount = commerce_currency_amount_to_decimal($balance['amount'], $balance['currency_code']);
+  // Depending on the currency, set the correct merchant account.
+  $merchantAccountId = isset($payment_method['settings']['commerce_braintree_merchant_account'][$balance['currency_code']]) ? $payment_method['settings']['commerce_braintree_merchant_account'][$balance['currency_code']] : NULL;
   $trData = Braintree_TransparentRedirect::transactionData(
     array(
       // Add transaction related data.
       'transaction' => array(
         'type' => Braintree_Transaction::SALE,
+        'merchantAccountId' => $merchantAccountId,
         'amount' => $amount,
         'customer' => array(
           'firstName' => $customer_name,
diff --git a/commerce_braintree.commerce_braintree_cof.inc b/commerce_braintree.commerce_braintree_cof.inc
index c9b8446..ad6c66c 100644
--- a/commerce_braintree.commerce_braintree_cof.inc
+++ b/commerce_braintree.commerce_braintree_cof.inc
@@ -33,7 +33,9 @@ function commerce_braintree_cof_redirect_form($form, &$form_state, $order, $paym
   // Retrieve the order balance instead of the order total, this allows you
   // to pay your order with multiple payment methods.
   $balance = commerce_payment_order_balance($order);
-  $amount = commerce_currency_amount_to_decimal($balance['amount'], commerce_default_currency());
+  $amount = commerce_currency_amount_to_decimal($balance['amount'], $balance['currency_code']);
+  // Depending on the currency, set the correct merchant account.
+  $merchantAccountId = isset($payment_method['settings']['commerce_braintree_merchant_account'][$balance['currency_code']]) ? $payment_method['settings']['commerce_braintree_merchant_account'][$balance['currency_code']] : NULL;
   if ($context === NULL || $context == 'new') {
     $form = commerce_braintree_credit_card_form($payment_method);
     $trData = Braintree_TransparentRedirect::transactionData(
@@ -41,6 +43,7 @@ function commerce_braintree_cof_redirect_form($form, &$form_state, $order, $paym
         // Add transaction related data.
         'transaction' => array(
           'type' => Braintree_Transaction::SALE,
+          'merchantAccountId' => $merchantAccountId,
           'amount' => $amount,
           'customer' => array(
             'firstName' => $customer_name,
diff --git a/commerce_braintree.module b/commerce_braintree.module
index a0c46dd..bb1efcf 100644
--- a/commerce_braintree.module
+++ b/commerce_braintree.module
@@ -110,6 +110,8 @@ function commerce_braintree_cardonfile_update_delete($form, &$form_state, $payme
 function commerce_braintree_default_settings_form($settings = NULL) {
 
   $default_currency = commerce_default_currency();
+  // Get a list of enabled currencies
+  $currencies = commerce_currencies(TRUE);
   // Merge default settings into the stored settings array.
   // Demonstration or production ?
   $form['commerce_braintree_mode'] = array(
@@ -148,6 +150,22 @@ function commerce_braintree_default_settings_form($settings = NULL) {
     '#default_value' => isset($settings['commerce_braintree_private_key']) ? $settings['commerce_braintree_private_key'] : NULL,
     '#required' => TRUE,
   );
+  // Braintree supports multiple currencies through the use of multiple merhcant
+  // accounts.
+  // If there is more than one currency enabled, create forms for those too.
+  if (count($currencies) > 1) {
+    foreach ($currencies as $currency) {
+      $form['commerce_braintree_merchant_account'][$currency['code']] = array(
+        '#type' => 'textfield',
+        '#title' => t('Merchant account ' . $currency['code']),
+        '#description' => t('The merchant account for ' . $currency['code']),
+        '#size' => 30,
+        '#maxlength' => 128,
+        '#default_value' => isset($settings['commerce_braintree_merchant_account'][$currency['code']]) ? $settings['commerce_braintree_merchant_account'][$currency['code']] : NULL,
+        '#required' => FALSE,
+      );
+    }
+  }
 
   return $form;
 }
