diff -burN evolution-3.10.1/addressbook/gui/widgets/e-contact-map.c evolution-3.10.1.new/addressbook/gui/widgets/e-contact-map.c
--- evolution-3.10.1/addressbook/gui/widgets/e-contact-map.c	2013-09-21 08:53:21.000000000 -0500
+++ evolution-3.10.1.new/addressbook/gui/widgets/e-contact-map.c	2013-10-27 14:06:37.711289426 -0600
@@ -29,7 +29,7 @@
 #include <champlain-gtk/champlain-gtk.h>
 #include <geoclue/geoclue-address.h>
 #include <geoclue/geoclue-position.h>
-#include <geocode-glib.h>
+#include <geocode-glib/geocode-glib.h>
 
 #include <clutter/clutter.h>
 
@@ -91,6 +91,8 @@
 	AsyncContext *async_context = user_data;
 	ChamplainMarkerLayer *marker_layer;
 	ChamplainMarker *marker;
+	GList *res;
+	GeocodeLocation *loc;
 
 	g_return_if_fail (async_context != NULL);
 	g_return_if_fail (E_IS_CONTACT_MAP (async_context->map));
@@ -107,11 +109,10 @@
 	if (!CHAMPLAIN_IS_MARKER_LAYER (marker_layer))
 		goto exit;
 
-	resolved = geocode_object_resolve_finish (
-		GEOCODE_OBJECT (source), result, NULL);
+	res = geocode_forward_search_finish (
+		GEOCODE_FORWARD (source), result, NULL);
 
-	if (resolved == NULL ||
-	    !geocode_object_get_coords (resolved, &longitude, &latitude)) {
+	if (res == NULL) {
 		const gchar *name;
 
 		name = champlain_label_get_text (CHAMPLAIN_LABEL (marker));
@@ -121,12 +122,18 @@
 		goto exit;
 	}
 
+	loc = res->data;
+
 	/* Move the marker to resolved position */
 	champlain_location_set_location (
-		CHAMPLAIN_LOCATION (marker), latitude, longitude);
+		CHAMPLAIN_LOCATION (marker),
+		geocode_location_get_latitude(loc),
+		geocode_location_get_longitude(loc));
 	champlain_marker_layer_add_marker (marker_layer, marker);
 	champlain_marker_set_selected (marker, FALSE);
 
+	g_list_free_full (res, g_object_unref);
+
 	/* Store the marker in the hash table. Use it's label as key */
 	name = champlain_label_get_text (CHAMPLAIN_LABEL (marker));
 	marker_ptr = g_hash_table_lookup (
@@ -151,39 +158,55 @@
 }
 
 static void
+add_attr (GHashTable *ht,
+	  const char *key,
+	  const char *s)
+{
+	GValue *value;
+	value = g_new0 (GValue, 1);
+	g_value_init (value, G_TYPE_STRING);
+	g_value_set_static_string (value, s);
+	g_hash_table_insert (ht, g_strdup (key), value);
+}
+
+static GHashTable *
+address_to_xep (EContactAddress *address)
+{
+   
+	GHashTable *ht;
+	GValue *value;
+
+	ht = g_hash_table_new_full (g_str_hash, g_str_equal,
+				    g_free, g_free);
+	add_attr (ht, "postalcode", address->code);
+	add_attr (ht, "country", address->country);
+	add_attr (ht, "region", address->region);
+	add_attr (ht, "locality", address->locality);
+	add_attr (ht, "street", address->street);
+}
+
+static void
 resolve_marker_position (EContactMap *map,
                          EContactMarker *marker,
                          EContactAddress *address)
 {
-	GeocodeObject *geocoder;
+	GeocodeForward *geocoder;
 	AsyncContext *async_context;
 	const gchar *key;
+	GHashTable *ht;
 
 	g_return_if_fail (E_IS_CONTACT_MAP (map));
 	g_return_if_fail (address != NULL);
 
-	geocoder = geocode_object_new ();
-
-	key = GEOCODE_OBJECT_FIELD_POSTAL;
-	geocode_object_add (geocoder, key, address->code);
-
-	key = GEOCODE_OBJECT_FIELD_COUNTRY;
-	geocode_object_add (geocoder, key, address->country);
-
-	key = GEOCODE_OBJECT_FIELD_STATE;
-	geocode_object_add (geocoder, key, address->region);
-
-	key = GEOCODE_OBJECT_FIELD_CITY;
-	geocode_object_add (geocoder, key, address->locality);
-
-	key = GEOCODE_OBJECT_FIELD_STREET;
-	geocode_object_add (geocoder, key, address->street);
+	ht = address_to_xep (address);
+	geocoder = geocode_forward_new_for_params (ht);
+	g_hash_table_destroy (ht);
 
 	async_context = g_slice_new0 (AsyncContext);
 	async_context->map = g_object_ref (map);
 	async_context->marker = marker;
 
-	geocode_object_resolve_async (
+	geocode_forward_search_async (
 		geocoder, NULL,
 		contact_map_address_resolved_cb,
 		async_context);
diff -burN evolution-3.10.1/configure.ac evolution-3.10.1.new/configure.ac
--- evolution-3.10.1/configure.ac	2013-09-21 08:53:22.000000000 -0500
+++ evolution-3.10.1.new/configure.ac	2013-10-27 13:46:38.077064414 -0600
@@ -1278,12 +1278,10 @@
 
 	])])
 
-	dnl Restrict geocode-glib dependency to 0.99.0 so
-	dnl we don't have to chase subsequent API changes.
 	PKG_CHECK_MODULES(
 		[GEO],
 		[geoclue >= geoclue_minimum_version
-		 geocode-glib = 0.99.0],,
+		 geocode-glib-1.0 >= 0.99.1],,
 		[AC_MSG_ERROR([
 
 	geoclue and/or geocode-glib not found.
