diff -up cups-1.5b1/backend/snmp.c.hp-deviceid-oid cups-1.5b1/backend/snmp.c
--- cups-1.5b1/backend/snmp.c.hp-deviceid-oid	2011-05-20 05:49:49.000000000 +0200
+++ cups-1.5b1/backend/snmp.c	2011-05-24 17:24:48.000000000 +0200
@@ -187,6 +187,7 @@ static const int	UriOID[] = { CUPS_OID_p
 static const int	LexmarkProductOID[] = { 1,3,6,1,4,1,641,2,1,2,1,2,1,-1 };
 static const int	LexmarkProductOID2[] = { 1,3,6,1,4,1,674,10898,100,2,1,2,1,2,1,-1 };
 static const int	LexmarkDeviceIdOID[] = { 1,3,6,1,4,1,641,2,1,2,1,3,1,-1 };
+static const int	HPDeviceIdOID[] = { 1,3,6,1,4,1,11,2,3,9,1,1,7,0,-1 };
 static const int	XeroxProductOID[] = { 1,3,6,1,4,1,128,2,1,3,1,2,0,-1 };
 static cups_array_t	*DeviceURIs = NULL;
 static int		HostNameLookups = 0;
@@ -1006,6 +1007,9 @@ read_snmp_response(int fd)		/* I - SNMP 
 	_cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1,
 	               packet.community, CUPS_ASN1_GET_REQUEST,
 		       DEVICE_PRODUCT, XeroxProductOID);
+	_cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1,
+		       packet.community, CUPS_ASN1_GET_REQUEST,
+		       DEVICE_ID, HPDeviceIdOID);
         break;
 
     case DEVICE_DESCRIPTION :
