diff --git a/commerce_migrate_ubercart/product.inc b/commerce_migrate_ubercart/product.inc
index 7521a65..24d6093 100644
--- a/commerce_migrate_ubercart/product.inc
+++ b/commerce_migrate_ubercart/product.inc
@@ -36,14 +36,26 @@ class CommerceMigrateUbercartProductMigration extends DynamicMigration {
       ),
       MigrateDestinationEntityAPI::getKeySchema('commerce_product', $arguments['type'])
     );
+
     // Create a MigrateSource object, which manages retrieving the input data.
     $connection = commerce_migrate_ubercart_get_source_connection();
     $query = $connection->select('node', 'n');
     $query->innerJoin('uc_products', 'ucp', 'n.nid = ucp.nid AND n.vid = ucp.vid');
-    $query->fields('n', array('nid', 'vid', 'type', 'title', 'created', 'changed'))
-          ->fields('ucp', array('model', 'sell_price'))
-          ->condition('n.type', $arguments['type'])
-          ->distinct();
+    // If stock module is enabled -> migrate stock as well
+    if (module_exists('commerce_stock')) {
+      $query->innerJoin('uc_product_stock', 'ucpst', 'n.nid = ucpst.nid');
+      $query->fields('n', array('nid', 'vid', 'type', 'title', 'created', 'changed'))
+        ->fields('ucp', array('model', 'sell_price', 'cost'))
+        ->fields('ucpst', array('stock'))
+        ->condition('n.type', $arguments['type'])
+        ->distinct();
+    } else {
+      $query->fields('n', array('nid', 'vid', 'type', 'title', 'created', 'changed'))
+        ->fields('ucp', array('model', 'sell_price', 'cost'))
+        ->condition('n.type', $arguments['type'])
+        ->distinct();
+    }
+
     if (variable_get('commerce_migrate_ubercart_user_map_ok', FALSE)) {
       $query->addField('n', 'uid', 'uid');
     }
@@ -59,6 +71,11 @@ class CommerceMigrateUbercartProductMigration extends DynamicMigration {
     $this->addFieldMapping('title', 'title');
     $this->addFieldMapping('created', 'created');
     $this->addFieldMapping('changed', 'changed');
+
+    if (module_exists('commerce_stock')) {
+      $this->addFieldMapping('commerce_stock', 'stock');
+    }
+
     // Default uid to 0 if we're not mapping it.
     if (variable_get('commerce_migrate_ubercart_user_map_ok', FALSE) && variable_get('commerce_migrate_ubercart_user_migration_class', "") != "") {
       $this->addFieldMapping('uid', 'uid')->sourceMigration(variable_get('commerce_migrate_ubercart_user_migration_class', ""))->defaultValue(0);
@@ -70,9 +87,14 @@ class CommerceMigrateUbercartProductMigration extends DynamicMigration {
     $this->addFieldMapping('product_id')->issueGroup(t('DNM'));
     $this->addFieldMapping('path')->issueGroup(t('DNM'));
     // Fields
-    $arguments = MigrateCommercePriceFieldHandler::arguments(array('USD'));
+
+    $defcurr = commerce_default_currency();
+
+    $arguments = MigrateCommercePriceFieldHandler::arguments(array($defcurr));
     $this->addFieldMapping('commerce_price', 'sell_price')
       ->arguments($arguments);
+    $this->addFieldMapping('field_cost', 'cost')
+      ->arguments($arguments);
     $this->addFieldMapping('field_image','images')
       ->arguments(array(
         'file_function' => 'file_copy',
@@ -84,6 +106,7 @@ class CommerceMigrateUbercartProductMigration extends DynamicMigration {
         'preserve_files' => TRUE,
         'file_function' => 'file_link',
       ));
+
   }
 
   public function prepareRow($row) {
