diff --git a/flash.h b/flash.h
index f04e851..27b6328 100644
--- a/flash.h
+++ b/flash.h
@@ -593,6 +593,9 @@
 uint8_t internal_chip_readb(const volatile void *addr);
 uint16_t internal_chip_readw(const volatile void *addr);
 uint32_t internal_chip_readl(const volatile void *addr);
+#if defined(__FreeBSD__) || defined(__DragonFly__)
+extern int io_fd;
+#endif
 
 /* dummyflasher.c */
 int dummy_init(void);
diff --git a/internal.c b/internal.c
index 4c12115..2f9ba17 100644
--- a/internal.c
+++ b/internal.c
@@ -83,11 +83,8 @@
 	return NULL;
 }
 
-int internal_init(void)
+void get_io_perms(void)
 {
-	int ret = 0;
-
-	/* First get full io access */
 #if defined (__sun) && (defined(__i386) || defined(__amd64))
 	if (sysi86(SI86V86, V86SC_IOPL, PS_IOPL) != 0) {
 #elif defined(__FreeBSD__) || defined (__DragonFly__)
@@ -95,9 +92,17 @@
 #else
 	if (iopl(3) != 0) {
 #endif
-		fprintf(stderr, "ERROR: Could not get IO privileges (%s).\nYou need to be root.\n", strerror(errno));
+		fprintf(stderr, "ERROR: Could not get I/O privileges (%s).\n"
+			"You need to be root.\n", strerror(errno));
 		exit(1);
 	}
+}
+
+int internal_init(void)
+{
+	int ret = 0;
+
+	get_io_perms(void);
 
 	/* Initialize PCI access for flash enables */
 	pacc = pci_alloc();	/* Get the pci_access structure */
diff --git a/nic3com.c b/nic3com.c
index bc85ce5..a60f594 100644
--- a/nic3com.c
+++ b/nic3com.c
@@ -39,10 +39,6 @@
 struct pci_access *pacc;
 struct pci_filter filter;
 
-#if defined(__FreeBSD__) || defined(__DragonFly__)
-int io_fd;
-#endif
-
 #define OK 0
 #define NT 1	/* Not tested */
 
@@ -102,17 +98,7 @@
 	struct pci_dev *dev;
 	char *msg = NULL;
 
-#if defined (__sun) && (defined(__i386) || defined(__amd64))
-	if (sysi86(SI86V86, V86SC_IOPL, PS_IOPL) != 0) {
-#elif defined(__FreeBSD__) || defined (__DragonFly__)
-	if ((io_fd = open("/dev/io", O_RDWR)) < 0) {
-#else
-	if (iopl(3) != 0) {
-#endif
-		fprintf(stderr, "ERROR: Could not get IO privileges (%s).\n"
-			"You need to be root.\n", strerror(errno));
-		exit(1);
-	}
+	get_io_perms();
 
 	pacc = pci_alloc();     /* Get the pci_access structure */
 	pci_init(pacc);         /* Initialize the PCI library */
@@ -155,6 +141,9 @@
 {
 	free(nic_pcidev);
 	pci_cleanup(pacc);
+#if defined(__FreeBSD__) || defined(__DragonFly__)
+	close(io_fd);
+#endif
 	return 0;
 }
 
