--- libgweather-3.8.1-orig/libgweather/gweather-location.c	2013-04-15 22:47:25.000000000 +0200
+++ libgweather-3.8.1-devel/libgweather/gweather-location.c	2013-05-05 14:07:11.405304718 +0200
@@ -615,16 +615,32 @@
 gweather_location_get_timezone (GWeatherLocation *loc)
 {
     const char *tz_hint;
+    GWeatherLocation *loc_orig;
     int i;
 
     g_return_val_if_fail (loc != NULL, NULL);
 
+    loc_orig = loc;
     while (loc && !loc->tz_hint)
 	loc = loc->parent;
-    if (!loc)
-	return NULL;
-    tz_hint = loc->tz_hint;
+    /* if nothing found, look for tz_hint by children */
+    if (loc)
+	tz_hint = loc->tz_hint;
+    else {
+	if (loc_orig->children) {
+	    loc = loc_orig;
+	    for (i = 0; loc->children[i]; i++) {
+		if (loc->children[i]->tz_hint)
+		    break;
+	    }
 
+	    if (!loc->children[i])
+		return NULL;
+
+	    tz_hint = loc->children[i]->tz_hint;
+	}
+    }
+    
     while (loc) {
 	while (loc && !loc->zones)
 	    loc = loc->parent;
