diff --git a/net/tap-bsd.c b/net/tap-bsd.c
index 2f3efde..577aafe 100644
--- a/net/tap-bsd.c
+++ b/net/tap-bsd.c
@@ -28,6 +28,8 @@
  #include "qemu-error.h"

  #ifdef __NetBSD__
+#include <sys/ioctl.h>
+#include <net/if.h>
  #include <net/if_tap.h>
  #endif

@@ -40,8 +42,12 @@
  int tap_open(char *ifname, int ifname_size, int *vnet_hdr, int 
vnet_hdr_required)
  {
      int fd;
+#ifdef TAPGIFNAME
+    struct ifreq ifr;
+#else
      char *dev;
      struct stat s;
+#endif

  #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || 
