 	pdu.value.encode(SNMP::SYNTAX_INT, (int16_t) AnalogPin::sample(pin));
       break;
     case SNMP::ardVcc:
-      pdu.value.encode(SNMP::SYNTAX_INT, (int16_t) AnalogPin::bandgap());
+      if (pin > 0)
+	pdu.error_status = SNMP::NO_SUCH_NAME;
+      else
+	pdu.value.encode(SNMP::SYNTAX_INT, (int16_t) AnalogPin::bandgap());
       break;
     }
   }

      pdu.value.encode(SNMP::SYNTAX_UINT32, Watchdog::millis() / 1000L);
      break;
    case SNMP::sysServices:
      pdu.value.encode(SNMP::SYNTAX_INT, 42);
      break;
    case SNMP::sysContact:
      static const char CONTACT[] PROGMEM = "<your name>";

{
  // Match with SNMP MIB-2 System OID root
  int sys = pdu.oid.match(SNMP::MIB2_SYSTEM);
  if (sys < 0) return (false);

  // Get next value or step to next mib
  if (pdu.type == SNMP::PDU_GET_NEXT) {
    if (sys < SNMP::sysServices) {
      sys += 1;
      pdu.oid.name[pdu.oid.length - 1] = sys;
      pdu.type = SNMP::PDU_GET;
    }
    else {
      memcpy_P(&pdu.oid, SNMP::ARDUINO_MIB, pgm_read_byte(SNMP::ARDUINO_MIB) + 1);
      pdu.oid.name[pdu.oid.length++] = 0;
      pdu.oid.name[pdu.oid.length++] = 0;
      return (false);
    }
  }

  // Check request type
  if (sys < SNMP::sysDescr || sys > SNMP::sysServices) return (false);

  // Get system value
