The app classloader is already checked first -- as you can see from print.
But I guess that code checks *all* binding resources, hence finding JBoss' slf4j as well.
You need to filter out slf4j lookups from your app -- which then might lead to other weird behavior.
And also, with 5.1. you don't have a declarative way of filtering between CL domains; we only added than later, in AS 6.1.
(but you can do it programmatically ...)