diff --git a/includes/common.inc b/includes/common.inc
index b6ea297..b4cb38f 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -608,7 +608,8 @@ function drupal_parse_url($url) {
 /**
  * Encodes a Drupal path for use in a URL.
  *
- * For aesthetic reasons slashes are not escaped.
+ * For aesthetic reasons slashes, commas and pluses are not escaped. Commas and
+ * pluses can be used as separators in taxonomy URLs.
  *
  * Note that url() takes care of calling this function, so a path passed to that
  * function should not be encoded in advance.
@@ -617,7 +618,10 @@ function drupal_parse_url($url) {
  *   The Drupal path to encode.
  */
 function drupal_encode_path($path) {
-  return str_replace('%2F', '/', rawurlencode($path));
+  return str_replace(
+      array('%2F', '%2C', '%2B'),
+      array('/', ',', '+'),
+      rawurlencode($path));
 }
 
 /**
