find $DIR -depth -maxdepth 3 \
 -type d -readable -printf \
 'echo ; echo %p ; echo
 ls -t --color=always "%p"\n' |\
 . /dev/stdin 2>&-

This avoids any argument list problems because the only argument *`ls`* will ever receive is the name of the directory you want listed. You can do this with anything you like.

The shell just *`. sources`* the *`|pipe`* as a shell script - it's the same process and doesn't have the issues you can encounter when *`execve`* is called.

In any case - the above only goes three-deep which is adjustable by changing *`maxdepth`.* It also deep first - so you work your way backwards to your current directory from *`depth`.* 

You might notice you also get *`$LSCOLORS`* - on my machine it also provides neatly printed columns and everything else you would want from *`ls`* - or, for that matter, anything you can imagine you'd wanna do with *`. source.`*

###NO SVN

Again, this'll do anything you expect of *`ls`.* So hiding *`.svn`* files is as simple as changing the *`ls`* line to:

 ls -t --color=always --hide="*svn" "%p"\n