diff --git a/basis/xml/traversal/traversal-tests.factor b/basis/xml/traversal/traversal-tests.factor
index 165ca34adf..c7e8c0a4ae 100644
--- a/basis/xml/traversal/traversal-tests.factor
+++ b/basis/xml/traversal/traversal-tests.factor
@@ -1,6 +1,6 @@
! Copyright (C) 2005, 2009 Daniel Ehrenberg
! See http://factorcode.org/license.txt for BSD license.
-USING: xml xml.traversal tools.test xml.data sequences ;
+USING: xml xml.traversal tools.test xml.data sequences arrays ;
IN: xml.traversal.tests
[ "bar" ] [ "bar" string>xml children>string ] unit-test
@@ -16,3 +16,6 @@ IN: xml.traversal.tests
[ "blah" ] [ "" string>xml "foo" deep-tag-named "attr" attr ] unit-test
[ { "blah" } ] [ "" string>xml "foo" deep-tags-named [ "attr" attr ] map ] unit-test
+
+[ { "blah" } ] [ "" string>xml "blah" "attr" tags-with-attr [ "attr" attr ] map ] unit-test
+[ { "blah" } ] [ "bar" { { "attr" "blah" } } f 1array "blah" "attr" tags-with-attr [ "attr" attr ] map ] unit-test
diff --git a/basis/xml/traversal/traversal.factor b/basis/xml/traversal/traversal.factor
index 46a5896814..c1c4ba670b 100644
--- a/basis/xml/traversal/traversal.factor
+++ b/basis/xml/traversal/traversal.factor
@@ -50,7 +50,7 @@ PRIVATE>
assure-name '[ _ _ tag-with-attr? ] find nip ;
: tags-with-attr ( tag attr-value attr-name -- tags-seq )
- assure-name '[ _ _ tag-with-attr? ] filter children>> ;
+ assure-name '[ _ _ tag-with-attr? ] { } filter-as ;
: deep-tag-with-attr ( tag attr-value attr-name -- matching-tag )
assure-name '[ _ _ tag-with-attr? ] deep-find ;