diff --git a/src/giggle-rev-list-view.c b/src/giggle-rev-list-view.c
index 488b317..f6b2fd5 100644
--- a/src/giggle-rev-list-view.c
+++ b/src/giggle-rev-list-view.c
@@ -678,15 +678,26 @@ revision_property_matches (GiggleRevision *revision,
 			   const gchar    *property,
 			   const gchar    *search_term)
 {
-	gboolean  match;
-	gchar    *str, *casefold_str;
-
-	g_object_get (revision, property, &str, NULL);
-	casefold_str = g_utf8_casefold (str, -1);
-	match = strstr (casefold_str, search_term) != NULL;
-
+	gboolean    match;
+	GValue      value;
+	gchar      *casefold_str;
+	GParamSpec *pspec;
+
+	pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (revision), property);
+	g_return_val_if_fail (pspec != NULL, FALSE);
+
+	g_value_init (&value, G_PARAM_SPEC_VALUE_TYPE (pspec));
+	g_object_get_property (G_OBJECT (revision), property, &value);
+	if (G_VALUE_HOLDS(&value, GIGGLE_TYPE_AUTHOR))
+		casefold_str = g_utf8_casefold (giggle_author_get_string(g_value_get_object(&value)), -1);
+	else if (G_VALUE_HOLDS_STRING (&value))
+		casefold_str = g_utf8_casefold (g_value_get_string (&value), -1);
+	else
+		casefold_str = NULL;
+	match = casefold_str != NULL && strstr (casefold_str, search_term) != NULL;
+
+	g_value_unset (&value);
 	g_free (casefold_str);
-	g_free (str);
 
 	return match;
 }
@@ -850,11 +861,14 @@ revision_matches (GiggleRevListView *list,
 	gboolean match = FALSE;
 
 	match = (revision_property_matches (revision, "author", search_term) ||
+	         /* may also want to look for "committer" ? */
 		 revision_property_matches (revision, "sha", search_term) ||
-		 revision_log_matches (list, revision, search_term));
+		 revision_property_matches (revision, "short-log", search_term));
 
 	if (!match && full_search) {
-		match = revision_diff_matches (list, revision, search_term);
+		/* log matches needs to ask git, only do so when asked for full search */
+		match = revision_log_matches (list, revision, search_term) ||
+		        revision_diff_matches (list, revision, search_term);
 	}
 
 	return match;
