> This bug maybe should be moved to avahi? The problem is in /etc/bash_completion, or at least can be fixed by modifying /etc/bash_completion (see attached diff), so it seems reasonable to call this a bash-completion bug. Of course, it may be that avahi-browse isn't meant to block while waiting for resolution, which would then be an avahi bug.
My attempt at patching this removes the resolve argument (-r) from avahi-browse, so it just spits out cached data in a parseable format (-cp).
*** /etc/bash_completion 2010-01-26 22:44:47.000000000 +1300 --- /etc/bash_completion.old 2010-01-26 22:44:26.000000000 +1300 *************** *** 1309,1315 **** if type avahi-browse >&/dev/null; then if [ -n "$(pidof avahi-daemon)" ]; then COMPREPLY=( "${comprep...@]}" $( ! compgen -W "$( avahi-browse -cp _workstation._tcp | \ grep ^= | cut -d\; -f7 | sort -u )" -- "$cur" ) ) fi fi --- 1309,1315 ---- if type avahi-browse >&/dev/null; then if [ -n "$(pidof avahi-daemon)" ]; then COMPREPLY=( "${comprep...@]}" $( ! compgen -W "$( avahi-browse -cpr _workstation._tcp | \ grep ^= | cut -d\; -f7 | sort -u )" -- "$cur" ) ) fi fi