Can't get EthernetBonjour to register a service

Hi! I'm new here...

I have an Arduino Mega 2560 with a SeedStudio Ethernet V2.0 shield. I'm using Arduino 1.6.6 to build an app in C++ (the "main" loop is an Arduino sketch, though). I'm using the EthernetV2_0 library from SeedStudio, and the EthernetBonjour package from github.com/TrippyLightning/EthernetBonjour. I had to tweak the include filenames in EthernetBonjour a bit to get it to work with EthernetV2_0 and modify EthernetV2_0 as described here to get them to work together, but they do. Oh, and building on a MacBook Pro with Mavericks (10.9)

The app needs to register a Bonjour service, but it doesn't seem to be working.

I can get the basic Ethernet stuff working, including either Static or DHCP address. I can call EthernetBonjour.begin("myapp") and then telnet to the device with "telnet myapp.local". That much works just fine.

When I call EthernetBonjour.addServiceRecord("My Application._telnet._tcp.", 23 MDNSServiceTCP) the call returns 1 indicating success, but the service does not show up anywhere... I checked with BonjourBrowser and Terminal, and also with dns-sd. It also can't be found by the client app that is trying to reach it.

All of this stuff (the Arduino, my Mac, and the client app) are working off the same local network (192.168.2.x) via a Linksys WRT54g router. I can see plenty of other Bonjour services with the above tools, just not the one I'm looking for.

So, I'm stumped. Does anyone have suggestions?

Here's the relevant code bits...

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

void setup() 
{
    // Disable SD
    pinMode(4, OUTPUT);
    digitalWrite(4, HIGH);

    Ethernet.begin(mac);

    dhcp_loop_count = 0;
    server.begin();

    EthernetBonjour.begin("myapp");
  
    int retv = EthernetBonjour.addServiceRecord("My Application._telnet._tcp.", 23, MDNSServiceTCP);
    if (retv == 0) {
        Serial.println("Bonjour Service Failed " + String(retv));
    } else {
        Serial.println("Bonjour Service Alive " + String(retv));
    }
}

void loop()
{
    EthernetBonjour.run();

    // Do other stuff

    dhcp_loop_count++;
    if (dhcp_loop_count = POLL_INTERVAL) {
        Ethernet.maintain();
        dhcp_loop_count = 0;
        
    }
}
}

Oh, and I've Googled the heck out of this problem, including threads here on Arduino.cc, to no real avail... just for the record.

I don't have any experience with EthernetBonjour but this might be worth a try: The Arduino Ethernet library needed a small change to be compatible with EthernetBonjour: https://github.com/arduino-libraries/Ethernet/commit/9d27c6b0d021b242fa2860a1f74eac98b294b03e So try making this same change to the EthernetV2_0 library.