diff -Nurp ipmitool-1.8.11/src/plugins/lan/lan.c ipmitool-1.8.11.new/src/plugins/lan/lan.c
--- ipmitool-1.8.11/src/plugins/lan/lan.c	2009-02-26 05:38:53.000000000 +0900
+++ ipmitool-1.8.11.new/src/plugins/lan/lan.c	2010-08-15 02:51:36.720333269 +0900
@@ -268,10 +268,16 @@ ipmi_lan_recv_packet(struct ipmi_intf *
 		tmout.tv_usec = 0;
 
 		ret = select(intf->fd + 1, &read_set, NULL, &err_set, &tmout);
-		if (ret < 0 || FD_ISSET(intf->fd, &err_set) || !FD_ISSET(intf->fd, &read_set))
-			return NULL;
+		if (FD_ISSET(intf->fd, &err_set)){
+			ret = recv(intf->fd,&rsp.data, IPMI_BUF_SIZE, MSG_OOB);
+			if (verbose > 2)
+				lperror( LOG_INFO,"recv_OOB_packet");
+		}
+
+		if (FD_ISSET(intf->fd, &read_set)){
+				ret = recv(intf->fd, &rsp.data, IPMI_BUF_SIZE, 0);
+		}
 
-		ret = recv(intf->fd, &rsp.data, IPMI_BUF_SIZE, 0);
 		if (ret < 0)
 			return NULL;
 	}
