Index: uspace/lib/nic/include/nic_driver.h
===================================================================
--- uspace/lib/nic/include/nic_driver.h	(revision eb2efc762ae4ca8ab7d751726bfbb6ad291a3d85)
+++ uspace/lib/nic/include/nic_driver.h	(revision 9cd81655f6cba65cbde69068b36eff82d99f80b8)
@@ -70,6 +70,4 @@
 	 */
 	ddf_fun_t *fun;
-	/** Identifier for higher network stack layers */
-	nic_device_id_t device_id;
 	/** Current state of the device */
 	nic_device_state_t state;
Index: uspace/lib/nic/include/nic_ev.h
===================================================================
--- uspace/lib/nic/include/nic_ev.h	(revision eb2efc762ae4ca8ab7d751726bfbb6ad291a3d85)
+++ uspace/lib/nic/include/nic_ev.h	(revision 9cd81655f6cba65cbde69068b36eff82d99f80b8)
@@ -43,8 +43,7 @@
 #include <sys/types.h>
 
-extern int nic_ev_addr_changed(async_sess_t *, nic_device_id_t,
-    const nic_address_t *);
-extern int nic_ev_device_state(async_sess_t *, nic_device_id_t, sysarg_t);
-extern int nic_ev_received(async_sess_t *, nic_device_id_t, void *, size_t);
+extern int nic_ev_addr_changed(async_sess_t *, const nic_address_t *);
+extern int nic_ev_device_state(async_sess_t *, sysarg_t);
+extern int nic_ev_received(async_sess_t *, void *, size_t);
 
 #endif
Index: uspace/lib/nic/include/nic_impl.h
===================================================================
--- uspace/lib/nic/include/nic_impl.h	(revision eb2efc762ae4ca8ab7d751726bfbb6ad291a3d85)
+++ uspace/lib/nic/include/nic_impl.h	(revision 9cd81655f6cba65cbde69068b36eff82d99f80b8)
@@ -48,5 +48,5 @@
 extern int nic_get_address_impl(ddf_fun_t *dev_fun, nic_address_t *address);
 extern int nic_send_frame_impl(ddf_fun_t *dev_fun, void *data, size_t size);
-extern int nic_callback_create_impl(ddf_fun_t *dev_fun, int device_id);
+extern int nic_callback_create_impl(ddf_fun_t *dev_fun);
 extern int nic_get_state_impl(ddf_fun_t *dev_fun, nic_device_state_t *state);
 extern int nic_set_state_impl(ddf_fun_t *dev_fun, nic_device_state_t state);
Index: uspace/lib/nic/src/nic_driver.c
===================================================================
--- uspace/lib/nic/src/nic_driver.c	(revision eb2efc762ae4ca8ab7d751726bfbb6ad291a3d85)
+++ uspace/lib/nic/src/nic_driver.c	(revision 9cd81655f6cba65cbde69068b36eff82d99f80b8)
@@ -497,5 +497,5 @@
 	if (nic_data->client_session != NULL) {
 		int rc = nic_ev_addr_changed(nic_data->client_session,
-		    nic_data->device_id, address);
+		    address);
 		if (rc != EOK) {
 			fibril_rwlock_write_unlock(&nic_data->main_lock);
@@ -604,6 +604,6 @@
 		}
 		fibril_rwlock_write_unlock(&nic_data->stats_lock);
-		nic_ev_received(nic_data->client_session, nic_data->device_id,
-		    frame->data, frame->size);
+		nic_ev_received(nic_data->client_session, frame->data,
+		    frame->size);
 	} else {
 		switch (frame_type) {
@@ -639,6 +639,5 @@
 	fibril_rwlock_write_unlock(&nic_data->stats_lock);
 	
-	nic_ev_received(nic_data->client_session, nic_data->device_id,
-	    data, size);
+	nic_ev_received(nic_data->client_session, data, size);
 }
 
@@ -691,5 +690,4 @@
 	nic_data->dev = NULL;
 	nic_data->fun = NULL;
-	nic_data->device_id = NIC_DEVICE_INVALID_ID;
 	nic_data->state = NIC_STATE_STOPPED;
 	nic_data->client_session = NULL;
Index: uspace/lib/nic/src/nic_ev.c
===================================================================
--- uspace/lib/nic/src/nic_ev.c	(revision eb2efc762ae4ca8ab7d751726bfbb6ad291a3d85)
+++ uspace/lib/nic/src/nic_ev.c	(revision 9cd81655f6cba65cbde69068b36eff82d99f80b8)
@@ -42,12 +42,10 @@
 
 /** Device address changed. */
-int nic_ev_addr_changed(async_sess_t *sess, nic_device_id_t dev_id,
-    const nic_address_t *addr)
+int nic_ev_addr_changed(async_sess_t *sess, const nic_address_t *addr)
 {
 	async_exch_t *exch = async_exchange_begin(sess);
 
 	ipc_call_t answer;
-	aid_t req = async_send_1(exch, NIC_EV_ADDR_CHANGED, (sysarg_t) dev_id,
-	    &answer);
+	aid_t req = async_send_0(exch, NIC_EV_ADDR_CHANGED, &answer);
 	sysarg_t retval = async_data_write_start(exch, addr,
 	    sizeof(nic_address_t));
@@ -65,11 +63,10 @@
 
 /** Device state changed. */
-extern int nic_ev_device_state(async_sess_t *sess, nic_device_id_t dev_id,
-    sysarg_t state)
+extern int nic_ev_device_state(async_sess_t *sess, sysarg_t state)
 {
 	int rc;
 
 	async_exch_t *exch = async_exchange_begin(sess);
-	rc = async_req_2_0(exch, NIC_EV_DEVICE_STATE, dev_id, state);
+	rc = async_req_1_0(exch, NIC_EV_DEVICE_STATE, state);
 	async_exchange_end(exch);
 
@@ -78,12 +75,10 @@
 
 /** Frame received. */
-int nic_ev_received(async_sess_t *sess, nic_device_id_t dev_id, void *data,
-    size_t size)
+int nic_ev_received(async_sess_t *sess, void *data, size_t size)
 {
 	async_exch_t *exch = async_exchange_begin(sess);
 
 	ipc_call_t answer;
-	aid_t req = async_send_1(exch, NIC_EV_RECEIVED, (sysarg_t) dev_id,
-	    &answer);
+	aid_t req = async_send_0(exch, NIC_EV_RECEIVED, &answer);
 	sysarg_t retval = async_data_write_start(exch, data, size);
 
Index: uspace/lib/nic/src/nic_impl.c
===================================================================
--- uspace/lib/nic/src/nic_impl.c	(revision eb2efc762ae4ca8ab7d751726bfbb6ad291a3d85)
+++ uspace/lib/nic/src/nic_impl.c	(revision 9cd81655f6cba65cbde69068b36eff82d99f80b8)
@@ -87,5 +87,5 @@
 	}
 	if (state == NIC_STATE_ACTIVE) {
-		if (nic_data->client_session == NULL || nic_data->device_id < 0) {
+		if (nic_data->client_session == NULL) {
 			fibril_rwlock_write_unlock(&nic_data->main_lock);
 			return EINVAL;
@@ -118,5 +118,5 @@
 		/* Notify upper layers that we are reseting the MAC */
 		int rc = nic_ev_addr_changed(nic_data->client_session,
-			nic_data->device_id, &nic_data->default_mac);
+			&nic_data->default_mac);
 		nic_data->poll_mode = nic_data->default_poll_mode;
 		memcpy(&nic_data->poll_period, &nic_data->default_poll_period,
@@ -150,5 +150,5 @@
 	nic_data->state = state;
 
-	nic_ev_device_state(nic_data->client_session, nic_data->device_id, state);
+	nic_ev_device_state(nic_data->client_session, state);
 
 	fibril_rwlock_write_unlock(&nic_data->main_lock);
@@ -187,14 +187,11 @@
  *
  * @param	fun
- * @param	device_id	ID of the device as used in higher layers
  *
  * @return EOK		On success, or negative error code.
  */
-int nic_callback_create_impl(ddf_fun_t *fun, nic_device_id_t device_id)
+int nic_callback_create_impl(ddf_fun_t *fun)
 {
 	nic_t *nic = (nic_t *) fun->driver_data;
 	fibril_rwlock_write_lock(&nic->main_lock);
-	
-	nic->device_id = device_id;
 	
 	nic->client_session = async_callback_receive(EXCHANGE_SERIALIZE);
