diff --git a/modules/taxonomy/taxonomy.module b/modules/taxonomy/taxonomy.module
index 5cddca6ba5c7b693d1af91de16f661d0b03b841d..94ea2abcecec15b5faecdac14c87edfb1ec1be00 100644
--- a/modules/taxonomy/taxonomy.module
+++ b/modules/taxonomy/taxonomy.module
@@ -1546,14 +1546,14 @@ function taxonomy_implode_tags($tags, $vid = NULL) {
   $typed_tags = array();
   foreach ($tags as $tag) {
     // Extract terms belonging to the vocabulary in question.
-    if (is_null($vid) || $term->vid == $vid) {
+    if (is_null($vid) || $tag->vid == $vid) {
 
-      // Commas and quotes in terms are special cases, so encode 'em.
-      if (strpos($term->name, ',') !== FALSE || strpos($term->name, '"') !== FALSE) {
-        $term->name = '"'. str_replace('"', '""', $term->name) .'"';
+      // Commas and quotes in tag names are special cases, so encode 'em.
+      if (strpos($tag->name, ',') !== FALSE || strpos($tag->name, '"') !== FALSE) {
+        $tag->name = '"'. str_replace('"', '""', $tag->name) .'"';
       }
 
-      $typed_tags[] = $term->name;
+      $typed_tags[] = $tag->name;
     }
   }
   return implode(', ', $typed_tags);