diff -r a44fb6fb63f8 -r b3977fb10b6e erts/emulator/beam/erl_bif_ddll.c
--- a/erts/emulator/beam/erl_bif_ddll.c
+++ b/erts/emulator/beam/erl_bif_ddll.c
@@ -1577,6 +1577,9 @@ static int do_load_driver_entry(DE_Handl
 	    erts_sys_ddll_close(dh->handle);
 	    return ERL_DE_LOAD_ERROR_FAILED_INIT;
 	}
+
+	/* The driver entry is "genuine" and will not need to be freed */
+	dh->need_drventry_free = 0;
     } else if (!need_driver_init) {
 	/* 
 	 * We weren't able to load the driver initialization function,
@@ -1594,6 +1597,9 @@ static int do_load_driver_entry(DE_Handl
 	dp->extended_marker = ERL_DRV_EXTENDED_MARKER;
 	dp->major_version = ERL_DRV_EXTENDED_MAJOR_VERSION;
 	dp->minor_version = ERL_DRV_EXTENDED_MINOR_VERSION;
+	
+	/* The driver entry will need to be freed */
+	dh->need_drventry_free = 1;
     } else {
 	/* We require the driver init function, but we weren't able to
 	 * load it */
