diff --git a/modules/taxonomy/taxonomy.module b/modules/taxonomy/taxonomy.module
index 946c5e4a7f2e6f1dcef2ea139a7ed9b040436569..eb81870f998395c64ff8d1a69bb7f145e661478e 100644
--- a/modules/taxonomy/taxonomy.module
+++ b/modules/taxonomy/taxonomy.module
@@ -1236,10 +1236,11 @@ function taxonomy_implode_tags($tags, $vid = NULL) {
       if (isset($tag->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[] = '"' . str_replace('"', '""', $tag->name) . '"';
+        }
+        else {
+          $typed_tags[] = $tag->name;
         }
-
-        $typed_tags[] = $tag->name;
       }
     }
   }