diff -ur zabbix-1.6.2/include/config.h zabbix-1.6.2/include/config.h
--- zabbix-1.6.2/include/config.h	2009-01-16 14:20:44.000000000 +0200
+++ zabbix-1.6.2/include/config.h	2009-03-15 16:26:31.294394719 +0200
@@ -104,7 +104,7 @@
 /* #undef HAVE_KVM_H */
 
 /* Define to 1 if you have the <lber.h> header file. */
-#define HAVE_LBER_H 1
+/* #undef HAVE_LBER_H */
 
 /* Define to 1 if LDAP should be enabled. */
 /* #undef HAVE_LDAP */
diff -ur zabbix-1.6.2/include/sysinfo.h zabbix-1.6.2/include/sysinfo.h
--- zabbix-1.6.2/include/sysinfo.h	2009-01-16 14:18:56.000000000 +0200
+++ zabbix-1.6.2/include/sysinfo.h	2009-03-16 21:57:41.716685588 +0200
@@ -235,6 +235,8 @@
 int	SYSTEM_CPU_INTR(const char *cmd, const char *param, unsigned flags, AGENT_RESULT *result);
 int	SYSTEM_CPU_NUM(const char *cmd, const char *param, unsigned flags, AGENT_RESULT *result);
 int	NET_TCP_LISTEN(const char *cmd, const char *param, unsigned flags, AGENT_RESULT *result);
+int     OLD_SENSOR(const char *cmd, const char *param, unsigned flags, AGENT_RESULT *result);
+
 
 #if defined(_WINDOWS)
 int	USER_PERFCOUNTER(const char *cmd, const char *param, unsigned flags, AGENT_RESULT *result);
diff -ur zabbix-1.6.2/src/libs/zbxsysinfo/common/common.c zabbix-1.6.2/src/libs/zbxsysinfo/common/common.c
--- zabbix-1.6.2/src/libs/zbxsysinfo/common/common.c	2009-01-16 14:18:58.000000000 +0200
+++ zabbix-1.6.2/src/libs/zbxsysinfo/common/common.c	2009-03-16 18:42:10.492476269 +0200
@@ -70,7 +70,7 @@
 	{"system.users.num",	0,		SYSTEM_UNUM, 		0,	0},
 	{"log",			CF_USEUPARAM,	ONLY_ACTIVE, 		0,	"logfile"},
 	{"eventlog",		CF_USEUPARAM,	ONLY_ACTIVE, 		0,	"system"},
-
+//	{"sensor",		CF_USEUPARAM,	OLD_SENSOR,		0,	"temp1"},	
 	{0}
 	};
 
diff -ur zabbix-1.6.2/src/libs/zbxsysinfo/linux/linux.c zabbix-1.6.2/src/libs/zbxsysinfo/linux/linux.c
--- zabbix-1.6.2/src/libs/zbxsysinfo/linux/linux.c	2009-01-16 14:18:58.000000000 +0200
+++ zabbix-1.6.2/src/libs/zbxsysinfo/linux/linux.c	2009-03-16 19:01:23.155507264 +0200
@@ -57,6 +57,6 @@
 
 	{"system.uptime",	0,		SYSTEM_UPTIME,		0,	0},
 	{"system.boottime",     0,      	SYSTEM_BOOTTIME,        0,      0},
-
+	{"sensor",		CF_USEUPARAM,	OLD_SENSOR,		0,	"temp1"},	
 	{0}
 	};
diff -ur zabbix-1.6.2/src/libs/zbxsysinfo/linux/sensors.c zabbix-1.6.2/src/libs/zbxsysinfo/linux/sensors.c
--- zabbix-1.6.2/src/libs/zbxsysinfo/linux/sensors.c	2009-01-16 14:18:58.000000000 +0200
+++ zabbix-1.6.2/src/libs/zbxsysinfo/linux/sensors.c	2009-03-16 21:50:10.161765476 +0200
@@ -20,9 +20,9 @@
 #include "common.h"
 
 #include "sysinfo.h"
-
 #include "md5.h"
 
+
 static int	get_sensor(const char *name, unsigned flags, AGENT_RESULT *result)
 {
 	DIR	*dir;
@@ -30,26 +30,29 @@
 	struct	stat buf;
 	char	filename[MAX_STRING_LEN];
 	char	line[MAX_STRING_LEN];
-	double	d1,d2,d3;
+	double	stemp;	
 
 	FILE	*f;
 
         assert(result);
 
         init_result(result);	
-	
-	dir=opendir("/proc/sys/dev/sensors");
+
+	dir=opendir("/sys/bus/i2c/devices");
 	if(NULL == dir)
 	{
 		return SYSINFO_RET_FAIL;
 	}
 
+	
 	while((entries=readdir(dir))!=NULL)
 	{
-		strscpy(filename,"/proc/sys/dev/sensors/");	
+		strscpy(filename,"/sys/bus/i2c/devices/");     
 		zbx_strlcat(filename,entries->d_name,MAX_STRING_LEN);
+		zbx_strlcat(filename,"/",MAX_STRING_LEN);
 		zbx_strlcat(filename,name,MAX_STRING_LEN);
-
+		
+						
 		if(stat(filename,&buf)==0)
 		{
 			if( NULL == (f = fopen(filename,"r") ))
@@ -63,10 +66,13 @@
 			}
 			zbx_fclose(f);
 
-			if(sscanf(line,"%lf\t%lf\t%lf\n",&d1, &d2, &d3) == 3)
+			if(sscanf(line,"%lf\n",&stemp) == 1)
 			{
+
 				closedir(dir);
-				SET_DBL_RESULT(result, d3);
+				SET_DBL_RESULT(result, stemp);
+
+
 				return  SYSINFO_RET_OK;
 			}
 			else
@@ -78,6 +84,7 @@
 	}
 	closedir(dir);
 	return	SYSINFO_RET_FAIL;
+
 }
 
 int     OLD_SENSOR(const char *cmd, const char *param, unsigned flags, AGENT_RESULT *result)
@@ -101,15 +108,15 @@
 
         if(strcmp(key,"temp1") == 0)
         {
-                ret = get_sensor("temp1", flags, result);
+                ret = get_sensor("temp1_input", flags, result);
         }
         else if(strcmp(key,"temp2") == 0)
         {
-                ret = get_sensor("temp2", flags, result);
+                ret = get_sensor("temp2_input", flags, result);
         }
         else if(strcmp(key,"temp3") == 0)
         {
-                ret = get_sensor("temp3", flags, result);
+                ret = get_sensor("temp3_input", flags, result);
         }
         else
         {