diff -aur lm_sensors-2.8.7/kernel/busses/i2c-ipmb.c lm_sensors-2.8.7-modified/kernel/busses/i2c-ipmb.c
--- lm_sensors-2.8.7/kernel/busses/i2c-ipmb.c	2003-03-17 01:39:57.000000000 +0000
+++ lm_sensors-2.8.7-modified/kernel/busses/i2c-ipmb.c	2004-07-01 15:16:24.000000000 +0100
@@ -86,8 +86,11 @@
                                   int id, struct ipmi_msg * msg)
 {
 	int err;
-
+#ifdef IPMI_REQUEST_NEWSEMANTICS
+	if((err = ipmi_request(i2c_ipmb_user, address, id, msg, NULL, 0)))
+#else
 	if((err = ipmi_request(i2c_ipmb_user, address, id, msg, 0)))
+#endif
 		printk(KERN_INFO "i2c-ipmb.o: ipmi_request error %d\n",
 			err);
 }
diff -aur lm_sensors-2.8.7/kernel/busses/i2c-ipmi.c lm_sensors-2.8.7-modified/kernel/busses/i2c-ipmi.c
--- lm_sensors-2.8.7/kernel/busses/i2c-ipmi.c	2004-04-27 02:11:32.000000000 +0100
+++ lm_sensors-2.8.7-modified/kernel/busses/i2c-ipmi.c	2004-07-01 15:15:19.000000000 +0100
@@ -82,7 +82,11 @@
 
 static void ipmi_i2c_send_message(int id, struct ipmi_msg * msg)
 {
+#ifdef IPMI_REQUEST_NEWSEMANTICS
+	ipmi_request(i2c_ipmi_user, &address, (long) id, msg, NULL, 0);
+#else
 	ipmi_request(i2c_ipmi_user, &address, (long) id, msg, 0);
+#endif
 }
 
 /* This is the message send function exported to the client
