I am testing UPnP device discovery on Linux machines with the clink132a.jar and corresponding examples. The devices and control point are set up to use IPv6 only and subnet scope. When a device is started locally to the control point, the registration is fine, but when a device is started on another node on the network, the control point throws a java.net.MalformedURLException when it tries to add the device. Also when the debug is on, The information shown be the control point about the device is as follows ...

CyberGarage warning : NOTIFY * HTTP/1.1
SERVER: Linux/2.4.22 UPnP/1.0 CyberLink/1.3.2
CACHE-CONTROL: max-age=1800
LOCATION: http://\[2001:770:20:2:207:ebff:fe30:fb9e%3]:4004/description.xml
NTS: ssdp:alive
NT: upnp:rootdevice
USN: uuid:25f5-a0fb-9110-e065::upnp:rootdevice
HOST: [FF03::C]:1900

But when the local devices are registered the Control Point dosent show the devices address containing a %3 at the end of the address. Could there be some encoding problem along the way? If anyone else has incountered this problem and found a solution please let me know.