diff --git a/Solr_Base_Query.php b/Solr_Base_Query.php
index d6837a6..271fd88 100644
--- a/Solr_Base_Query.php
+++ b/Solr_Base_Query.php
@@ -471,9 +471,12 @@ class SolrBaseQuery extends SolrFilterSubQuery implements DrupalSolrQueryInterfa
   public function getUrlQueryvalues($queryvalues = array()) {
     // For sanity's sake, unset the special 'q' param used by Drupal core.
     unset($queryvalues['q']);
-    $filters = $this->getParam('fq');
-    if ($filters) {
-      $queryvalues['fq'] = $filters;
+    // Only add fq params if they are already set, to avoid conflcits with facet filters.
+    if (isset($queryvalues['fq'])) {
+      $filters = $this->getParam('fq');
+      if ($filters) {
+        $queryvalues['fq'] = $filters;
+      }
     }
     $solrsort = $this->solrsort;
     if ($solrsort && ($solrsort['#name'] != 'score' || $solrsort['#direction'] != 'desc')) {
@@ -482,6 +485,10 @@ class SolrBaseQuery extends SolrFilterSubQuery implements DrupalSolrQueryInterfa
       }
       $queryvalues['solrsort'] = $solrsort['#name'] .' '. $solrsort['#direction'];
     }
+    else {
+      // Return to default relevancy sort.
+      unset($queryvalues['solrsort']);
+    }
     return $queryvalues;
   }
 
diff --git a/tests/solr_base_query.test b/tests/solr_base_query.test
index 9d5a2e8..9d6215f 100644
--- a/tests/solr_base_query.test
+++ b/tests/solr_base_query.test
@@ -255,12 +255,12 @@ class SolrBaseQueryTests extends DrupalUnitTestCase {
       $this->assertEqual($filter, $query->makeFilterQuery($filters[$idx]));
     }
     // Check that the query string is re-assembled correctly
-    $this->assertEqual(array('fq' => $fq), $query->getUrlQueryvalues());
+    $this->assertEqual(array('fq' => $fq), $query->getUrlQueryvalues(array('fq' => array())));
     $this->assertEqual('mykeys', $query->getParam('q'));
     $query->removeFilter('tid', '11');
     $filters = $query->getFilters();
     $this->assertEqual(count($filters), 5, count($filters) . ' filters found, expected 5 filters');
-    $this->assertEqual(array('fq' => array('tid:3', 'sort_label:hello', 'tid:1', 'tid:12', 'label:hello')), $query->getUrlQueryvalues());
+    $this->assertEqual(array('fq' => array('tid:3', 'sort_label:hello', 'tid:1', 'tid:12', 'label:hello')), $query->getUrlQueryvalues(array('fq' => array())));
     $query->removeFilter('tid');
     $filters = $query->getFilters();
     $this->assertEqual(count($filters), 2, count($filters) . ' filters found, expected 2 filters');
