diff -ruN apachesolr/apachesolr.module apachesolr_fixed/apachesolr.module
--- apachesolr/apachesolr.module	2015-12-02 20:11:47.000000000 +0100
+++ apachesolr_fixed/apachesolr.module	2015-12-16 12:24:06.000000000 +0100
@@ -2797,7 +2797,7 @@
   $get = array_diff_key($_GET, array('q' => 1, 'page' => 1, 'solrsort' => 1), $options['query']);
   $options['query'] += $get;
 
-  return '<a href="' . check_url(url($path, $options)) . '"' . drupal_attributes($options['attributes']) . '>' . ($options['html'] ? $text : check_plain(html_entity_decode($text))) . '</a>';
+  return '<a href="' . check_url(url(rawurlencode($path), $options)) . '"' . drupal_attributes($options['attributes']) . '>' . ($options['html'] ? $text : check_plain(html_entity_decode($text))) . '</a>';
 }
 
 function theme_apachesolr_sort_link($vars) {
diff -ruN apachesolr/apachesolr_search.module apachesolr_fixed/apachesolr_search.module
--- apachesolr/apachesolr_search.module	2015-12-02 20:11:47.000000000 +0100
+++ apachesolr_fixed/apachesolr_search.module	2015-12-16 13:29:52.000000000 +0100
@@ -1587,7 +1590,7 @@
   // Replace keys with their rawurlencoded value
   if (isset($fv['search_block_form'])) {
     $raw_keys = str_replace("/","%2f",$fv['search_block_form']);
-    $form_state['redirect'] = str_replace($fv['search_block_form'], $raw_keys, $form_state['redirect']);
+    $form_state['redirect'] = str_replace($fv['search_block_form'], rawurlencode(htmlspecialchars_decode($raw_keys)), $form_state['redirect']);
   }
 }
 
diff -ruN apachesolr/plugins/facetapi/adapter.inc apachesolr_fixed/plugins/facetapi/adapter.inc
--- apachesolr/plugins/facetapi/adapter.inc	2015-12-02 20:11:47.000000000 +0100
+++ apachesolr_fixed/plugins/facetapi/adapter.inc	2015-12-16 12:40:15.000000000 +0100
@@ -117,10 +117,10 @@
       }
     }
     if (!$query || NULL === $query->getPath()) {
-      return $this->searchPath;
+      return rawurlencode($this->searchPath);
     }
     else {
-      return $query->getPath();
+      return rawurlencode($query->getPath());
     }
 
   }
