Debian squeeze ships with ejabberd 2.1.5.
The correct way to run this version of ejabberd in dual stack mode is to set up a listener for each of the protocols.
Example:
{listen, [ % Ordinary client-2-server service { {5222, "::"}, ejabberd_c2s, [{access, c2s}, {max_stanza_size, 65536}, starttls, {certfile, "/etc/ejabberd/ejabberd.pem"}, {shaper, c2s_shaper}]}, { {5222, "0.0.0.0"}, ejabberd_c2s, [{access, c2s}, {max_stanza_size, 65536}, starttls, {certfile, "/etc/ejabberd/ejabberd.pem"}, {shaper, c2s_shaper}]}, % SSL-enabled client-2-server service { {5223, "::"}, ejabberd_c2s, [{access, c2s}, {max_stanza_size, 65536}, tls, {certfile, "/etc/ejabberd/ejabberd.pem"}, {shaper, c2s_shaper}]}, { {5223, "0.0.0.0"}, ejabberd_c2s, [{access, c2s}, {max_stanza_size, 65536}, tls, {certfile, "/etc/ejabberd/ejabberd.pem"}, {shaper, c2s_shaper}]}, % Server-2-server service { {5269, "::"}, ejabberd_s2s_in, [{shaper, s2s_shaper}, {max_stanza_size, 131072}]}, { {5269, "0.0.0.0"}, ejabberd_s2s_in, [{shaper, s2s_shaper}, {max_stanza_size, 131072}]}, % ...