diff --git a/sites/all/modules/commerce_autosku/commerce_autosku.commerce.inc b/sites/all/modules/commerce_autosku/commerce_autosku.commerce.inc
index bccc690..7c9b79a 100644
--- a/sites/all/modules/commerce_autosku/commerce_autosku.commerce.inc
+++ b/sites/all/modules/commerce_autosku/commerce_autosku.commerce.inc
@@ -84,7 +84,7 @@ function commerce_autosku_commerce_product_presave($product) {
       }
 
       // Generate the SKU.
-      $product->sku = commerce_autosku_generate_sku($product, $settings['pattern'], $case);
+      $product->sku = commerce_autosku_generate_sku($product, $settings['pattern'], !empty($settings['advanced']['pathauto']), $case);
     }
   }
 }
diff --git a/sites/all/modules/commerce_autosku/commerce_autosku.module b/sites/all/modules/commerce_autosku/commerce_autosku.module
index a606084..075231c 100644
--- a/sites/all/modules/commerce_autosku/commerce_autosku.module
+++ b/sites/all/modules/commerce_autosku/commerce_autosku.module
@@ -92,6 +92,14 @@ function commerce_autosku_form_commerce_product_ui_product_type_form_alter(&$for
     '#default_value' => $advanced['hide_sku'],
     '#description' => t('If enabled, the SKU field will not be shown the product form.'),
   );
+  if (module_exists('pathauto')) {
+    $autosku['advanced']['pathauto'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Use Pathauto settings to determine SKU case, replacement separator, and punctuation handling.'),
+      '#description' => t('If enabled, some AutoSKU settings may be disabled in favor of the related !link.', array('!link' => l(t('Pathauto settings'), 'admin/config/search/path/settings'))),
+      '#default_value' => $advanced['pathauto'],
+    );
+  }
   $autosku['advanced']['case'] = array(
     '#type' => 'select',
     '#title' => t('SKU Case'),
@@ -186,18 +194,27 @@ function _commerce_autosku_default_settings() {
   return array(
     'update_existing' => TRUE,
     'hide_sku' => TRUE,
+    'pathauto' => FALSE,
     'case' => 0,
   );
 }
 
 /**
  * API helper to reduce a SKU to a set of allowed characters.
+ *
+ * @param $string
+ *   The SKU string to be cleaned.
+ * @param $replacement
+ *   The replacement character to use for invalid characters found in the SKU.
+ *
+ * @return
+ *   The cleaned SKU string.
  */
-function commerce_autosku_cleanstring($string) {
+function commerce_autosku_cleanstring($string, $replacement = COMMERCE_AUTOSKU_REPLACEMENT) {
   if (module_exists('transliteration')) {
     $string = transliteration_get($string);
   }
-  return preg_replace(COMMERCE_AUTOSKU_DISALLOWED, COMMERCE_AUTOSKU_REPLACEMENT, $string);
+  return preg_replace(COMMERCE_AUTOSKU_DISALLOWED, $replacement, $string);
 }
 
 /**
@@ -220,9 +237,13 @@ function commerce_autosku_features_pipe_commerce_product_type_alter(&$pipe, $dat
  *   The product whose SKU should be generated.
  * @param $pattern
  *   The pattern to use to determine the product SKU.
+ * @param $pathauto
+ *   Boolean indicating whether or not to defer to replace token values using
+ *   the Pathauto settings for casing, separators, and punctuation.
  * @param $case
  *   String indicating the casing to use for letters in the SKU, one of:
- *   - 'original': do not change the casing used in any of the tokens.
+ *   - 'original': do not change the casing used in any of the tokens unless
+ *     Pathauto has already done so.
  *   - 'uppercase': convert the SKU to all upper case letters.
  *   - 'lowercase': convert the SKU to all lower case letters.
  *
@@ -230,10 +251,24 @@ function commerce_autosku_features_pipe_commerce_product_type_alter(&$pipe, $dat
  *   A string containing a unique SKU for the product pass in using the given
  *   pattern with a numeric suffix in the event of a pre-existing matching SKU.
  */
-function commerce_autosku_generate_sku($product, $pattern, $case = 'original') {
+function commerce_autosku_generate_sku($product, $pattern, $pathauto = FALSE, $case = 'original') {
   // Create the new SKU using token replacement, clean out illegitimate values,
   // and trim it to the maximum SKU length - 255 characters.
-  $sku = token_replace($pattern, array('commerce-product' => $product), array('clear' => TRUE));
+  $options = array(
+    'clear' => TRUE,
+  );
+
+  // Use the Pathauto token value cleaning option if enabled.
+  if ($pathauto && module_exists('pathauto')) {
+    module_load_include('inc', 'pathauto');
+    $options['callback'] = 'pathauto_clean_token_values';
+    $replacement = variable_get('pathauto_separator', '-');
+  }
+  else {
+    $replacement = COMMERCE_AUTOSKU_REPLACEMENT;
+  }
+
+  $sku = token_replace($pattern, array('commerce-product' => $product), $options);
   $sku = commerce_autosku_cleanstring($sku);
   $sku = drupal_substr($sku, 0, 255);
 
@@ -255,8 +290,8 @@ function commerce_autosku_generate_sku($product, $pattern, $case = 'original') {
     $i = 0;
 
     do {
-      $sku = drupal_substr($original_sku, 0, (255 - drupal_strlen(COMMERCE_AUTOSKU_REPLACEMENT . $i)));
-      $sku = commerce_autosku_cleanstring($sku . COMMERCE_AUTOSKU_REPLACEMENT . $i);
+      $sku = drupal_substr($original_sku, 0, (255 - drupal_strlen($replacement . $i)));
+      $sku = commerce_autosku_cleanstring($sku . $replacement . $i);
       $i++;
     } while (!commerce_product_validate_sku_unique($sku, $product->product_id));
   }
