Index: epan/addr_resolv.c
===================================================================
--- epan/addr_resolv.c	(revision 2134)
+++ epan/addr_resolv.c	(working copy)
@@ -2710,31 +2710,19 @@
         return;
 
 
-    if(ipv4_hash_table == NULL){
+    tp = (hashipv4_t *)g_hash_table_lookup(ipv4_hash_table, &addr);
+    if(tp){
+        g_strlcpy(tp->name, name, MAXNAMELEN);
+        tp->resolve = TRUE;
+    }else{
         int *key;
 
         key = (int *)g_new(int, 1);
         *key = addr;
-        ipv4_hash_table = g_hash_table_new_full(g_int_hash, g_int_equal, g_free, g_free);
         tp = new_ipv4(addr);
         g_strlcpy(tp->name, name, MAXNAMELEN);
         tp->resolve = TRUE;
         g_hash_table_insert(ipv4_hash_table, key, tp);
-    }else{
-        tp = (hashipv4_t *)g_hash_table_lookup(ipv4_hash_table, &addr);
-        if(tp){
-            g_strlcpy(tp->name, name, MAXNAMELEN);
-            tp->resolve = TRUE;
-        }else{
-            int *key;
-
-            key = (int *)g_new(int, 1);
-            *key = addr;
-            tp = new_ipv4(addr);
-            g_strlcpy(tp->name, name, MAXNAMELEN);
-            tp->resolve = TRUE;
-            g_hash_table_insert(ipv4_hash_table, key, tp);
-        }
     }
 
     g_strlcpy(tp->name, name, MAXNAMELEN);
@@ -2841,6 +2829,9 @@
 #endif /* _WIN32 */
 #endif /*GNU_ADNS */
 
+    g_assert(ipv4_hash_table == NULL);
+    ipv4_hash_table = g_hash_table_new_full(g_int_hash, g_int_equal, g_free, g_free);
+
     if (!addrinfo_list) {
         ai = se_new0(struct addrinfo);
         addrinfo_list = addrinfo_list_last = ai;
