@@ -203,11 +203,14 @@ void TimeZoneLocationModel::setCountry(const QString &country)
203203 if (m_country == country)
204204 return;
205205
206+ beginResetModel();
207+
206208 m_country = country;
207209
208210 Q_FOREACH(GeonamesCity *city, m_countryLocations) {
209211 geonames_city_free(city);
210212 }
213+ m_countryLocations.clear();
211214
212215 gint num_cities = geonames_get_n_cities();
213216 for (gint i = 0; i < num_cities; i++) {
@@ -219,6 +222,8 @@ void TimeZoneLocationModel::setCountry(const QString &country)
219222
220223 std::sort(m_countryLocations.begin(), m_countryLocations.end(), citycmp);
221224
225+ endResetModel();
226+
222227 Q_EMIT countryChanged(country);
223228}
224229