1c6d031
diff -up cups-1.4.2/backend/snmp.c.str3413 cups-1.4.2/backend/snmp.c
1c6d031
--- cups-1.4.2/backend/snmp.c.str3413	2009-01-14 22:40:58.000000000 +0000
f353189
+++ cups-1.4.2/backend/snmp.c	2009-12-08 10:54:11.798515550 +0000
1c6d031
@@ -999,7 +999,7 @@ read_snmp_response(int fd)		/* I - SNMP 
1c6d031
 		       DEVICE_PRODUCT, LexmarkProductOID2);
1c6d031
 	_cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1,
1c6d031
 	               packet.community, CUPS_ASN1_GET_REQUEST,
1c6d031
-		       DEVICE_URI, LexmarkDeviceIdOID);
1c6d031
+		       DEVICE_ID, LexmarkDeviceIdOID);
1c6d031
 	_cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1,
1c6d031
 	               packet.community, CUPS_ASN1_GET_REQUEST,
1c6d031
 		       DEVICE_PRODUCT, XeroxProductOID);
f353189
@@ -1054,7 +1054,9 @@ read_snmp_response(int fd)		/* I - SNMP 
f353189
 	break;
1c6d031
 
f353189
     case DEVICE_ID :
f353189
-	if (device && packet.object_type == CUPS_ASN1_OCTET_STRING)
f353189
+	if (device && packet.object_type == CUPS_ASN1_OCTET_STRING &&
f353189
+	    (!device->id ||
f353189
+	     strlen(device->id) < packet.object_value.string.num_bytes))
f353189
 	{
f353189
 	 /*
f353189
 	  * Update an existing cache entry...
f353189
@@ -1107,7 +1109,7 @@ read_snmp_response(int fd)		/* I - SNMP 
1c6d031
 
1c6d031
     case DEVICE_URI :
1c6d031
 	if (device && packet.object_type == CUPS_ASN1_OCTET_STRING &&
1c6d031
-	    !device->uri)
f353189
+	    !device->uri && packet.object_value.string.num_bytes > 0)
1c6d031
 	{
1c6d031
 	 /*
1c6d031
 	  * Update an existing cache entry...
f353189
diff -up cups-1.4.2/CHANGES-1.4.txt.str3413 cups-1.4.2/CHANGES-1.4.txt