diff --git a/analysis/app/compare.go b/analysis/app/compare.go
index 4428a3d..9127879 100644
--- a/analysis/app/compare.go
+++ b/analysis/app/compare.go
@@ -113,6 +113,11 @@
 
 // addToQuery returns a new query string with add applied as a filter.
 func addToQuery(query, add string) string {
+	if strings.ContainsAny(add, " \t\\\"") {
+		add = strings.Replace(add, `\`, `\\`, -1)
+		add = strings.Replace(add, `"`, `\"`, -1)
+		add = `"` + add + `"`
+	}
 	if strings.Contains(query, "|") {
 		return add + " " + query
 	}
diff --git a/analysis/app/compare_test.go b/analysis/app/compare_test.go
index f7f92e9..1728ae0 100644
--- a/analysis/app/compare_test.go
+++ b/analysis/app/compare_test.go
@@ -111,3 +111,23 @@
 		})
 	}
 }
+
+func TestAddToQuery(t *testing.T) {
+	tests := []struct {
+		query, add string
+		want       string
+	}{
+		{"one", "two", "two | one"},
+		{"pre | one vs two", "three", "three pre | one vs two"},
+		{"four", "five six", `"five six" | four`},
+		{"seven", `extra "fun"\problem`, `"extra \"fun\"\\problem" | seven`},
+		{"eight", `ni\"ne`, `"ni\\\"ne" | eight`},
+	}
+	for i, test := range tests {
+		t.Run(fmt.Sprintf("%d", i), func(t *testing.T) {
+			if got := addToQuery(test.query, test.add); got != test.want {
+				t.Errorf("addToQuery(%q, %q) = %q, want %q", test.query, test.add, got, test.want)
+			}
+		})
+	}
+}
