diff --git pathauto.module pathauto.module
index 72f738a..4be6164 100644
--- pathauto.module
+++ pathauto.module
@@ -453,15 +453,17 @@ function pathauto_node_update_alias(stdClass $node, $op, array $options = array(
     return;
   }
 
+  $options += array(
+    'language' => isset($node->language) ? $node->language : LANGUAGE_NONE,
+  );
   // Skip processing if the node has no pattern.
-  $language = isset($node->language) ? $node->language : LANGUAGE_NONE;
-  if (!pathauto_pattern_load_by_entity('node', $node->type, $language)) {
+  if (!pathauto_pattern_load_by_entity('node', $node->type, $options['language'])) {
     return;
   }
 
   module_load_include('inc', 'pathauto');
   $uri = entity_uri('node', $node);
-  pathauto_create_alias('node', $op, $uri['path'], array('node' => $node), $node->type, $language);
+  pathauto_create_alias('node', $op, $uri['path'], array('node' => $node), $node->type, $options['language']);
 }
 
 /**
@@ -539,7 +541,10 @@ function pathauto_taxonomy_term_update_alias(stdClass $term, $op, array $options
     return;
   }
 
-  $options += array('alias children' => FALSE);
+  $options += array(
+    'alias children' => FALSE,
+    'language' => isset($term->language) ? $term->language : LANGUAGE_NONE,
+  );
 
   $module = 'taxonomy_term';
   if ($term->vid == variable_get('forum_nav_vocabulary', '')) {
@@ -564,7 +569,7 @@ function pathauto_taxonomy_term_update_alias(stdClass $term, $op, array $options
 
   module_load_include('inc', 'pathauto');
   $uri = entity_uri('taxonomy_term', $term);
-  pathauto_create_alias($module, $op, $uri['path'], array('term' => $term), $term->vocabulary_machine_name);
+  pathauto_create_alias($module, $op, $uri['path'], array('term' => $term), $term->vocabulary_machine_name, $options['language']);
 
   if (!empty($options['alias children'])) {
     // For all children generate new alias.
@@ -653,7 +658,10 @@ function pathauto_user_update_alias(stdClass $account, $op, array $options = arr
     return;
   }
 
-  $options += array('alias blog' => module_exists('blog'));
+  $options += array(
+    'alias blog' => module_exists('blog'),
+    'language' => LANGUAGE_NONE,
+  );
 
   // Skip processing if the account has no pattern.
   if (!pathauto_pattern_load_by_entity('user')) {
@@ -662,11 +670,11 @@ function pathauto_user_update_alias(stdClass $account, $op, array $options = arr
 
   module_load_include('inc', 'pathauto');
   $uri = entity_uri('user', $account);
-  pathauto_create_alias('user', $op, $uri['path'], array('user' => $account));
+  pathauto_create_alias('user', $op, $uri['path'], array('user' => $account), NULL, $options['language']);
 
   // Because blogs are also associated with users, also generate the blog paths.
   if (!empty($options['alias blog'])) {
-    pathauto_blog_update_alias($account, $op);
+    pathauto_blog_update_alias($account, $op, $options);
   }
 }
 
@@ -711,9 +719,13 @@ function pathauto_blog_update_alias(stdClass $account, $op, array $options = arr
     return;
   }
 
+  $options += array(
+    'language' => LANGUAGE_NONE,
+  );
+
   module_load_include('inc', 'pathauto');
   if (node_access('create', 'blog', $account)) {
-    pathauto_create_alias('blog', $op, "blog/{$account->uid}", array('user' => $account));
+    pathauto_create_alias('blog', $op, "blog/{$account->uid}", array('user' => $account), NULL, $options['language']);
   }
   else {
     pathauto_path_delete_all("blog/{$account->uid}");
