  	global_env.ref_count--;
  	if (global_env.ref_count == 0) {
  		global_env.env->close (global_env.env, 0);
- 		global_env.env = NULL;
- 	}
--	G_UNLOCK (global_env);
- 	
- 	if (bf->priv->summary) {
- 		g_object_unref (bf->priv->summary);
 Index: git-foo/addressbook/backends/file/e-book-backend-file-index.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ git-foo/addressbook/backends/file/e-book-backend-file-index.c	2008-05-06 15:58:11.000000000 +0100
-@@ -0,0 +1,738 @@
++++ git-foo/addressbook/backends/file/e-book-backend-file-index.c	2008-05-07 16:23:36.000000000 +0100
+@@ -0,0 +1,871 @@
 +/*
 + * Copyright (C) 2008 OpenedHand Ltd
 + *

+
+  if (sexp_error == -1)
+  {
+    g_warning ("Failed to parse query %s, %s", query, e_sexp_error (sexp));
+    e_sexp_unref (sexp);
+    return NULL;
+  }

+  gchar *value; /* for the INDEX_FIELD_TYPE_STRING case */
+  GList *l, *values; /* for the INDEX_FIELD_TYPE_STRING_LIST case */
+  gint db_error = 0;
+  gchar *tmp = NULL;
+
+  /* we need the uid, this becomes the data for our index databases */
+  uid = (gchar *)e_contact_get (contact, E_CONTACT_UID);
