int vis_server = atomic_read(&bat_priv->vis_mode);
        size_t buff_pos, buf_size;
        char *buff;
-       int compare;
 
        primary_if = primary_if_get_selected(bat_priv);
        if (!primary_if)
                        entries = (struct vis_info_entry *)
                                ((char *)packet + sizeof(*packet));
 
+                       vis_data_insert_interface(packet->vis_orig,
+                                                 &vis_if_list, true);
+
                        for (j = 0; j < packet->entries; j++) {
                                if (entries[j].quality == 0)
                                        continue;
-                               compare =
-                                compare_eth(entries[j].src, packet->vis_orig);
+                               if (compare_eth(entries[j].src,
+                                               packet->vis_orig))
+                                       continue;
                                vis_data_insert_interface(entries[j].src,
                                                          &vis_if_list,
-                                                         compare);
+                                                         false);
                        }
 
                        hlist_for_each_entry(entry, pos, &vis_if_list, list) {
                        entries = (struct vis_info_entry *)
                                ((char *)packet + sizeof(*packet));
 
+                       vis_data_insert_interface(packet->vis_orig,
+                                                 &vis_if_list, true);
+
                        for (j = 0; j < packet->entries; j++) {
                                if (entries[j].quality == 0)
                                        continue;
-                               compare =
-                                compare_eth(entries[j].src, packet->vis_orig);
+                               if (compare_eth(entries[j].src,
+                                               packet->vis_orig))
+                                       continue;
                                vis_data_insert_interface(entries[j].src,
                                                          &vis_if_list,
-                                                         compare);
+                                                         false);
                        }
 
                        hlist_for_each_entry(entry, pos, &vis_if_list, list) {