### What steps will reproduce the problem?

How to reproduce:

1. Check that the files involved are not available in the local repository.
2. Force a switch to direct mode to fail, for example, due to a 'exotic' filename
(first bug).
3. Solve that problem.
4. Make another switch to direct mode, but call that command in a subdirectory of
the git-tree. Which will because some annexed file does not exists (second bug).
Note: all subsequent switches to direct mode will now fail, no matter where started.


Example:

mkdir test1 test2 && cd test1 && git init . && git annex init  
mkdir umlaut something\ else  
date > umlaut/this_has_a_$'\201'  
date > something\ else/problem  
git annex add .  
git commit -m "Init"  
cd ../test2/  

git clone ../test1/ . && git annex init  
git annex move --from origin .  

cd ../test1/  
git annex direct  #aborts with: commitBuffer: invalid argument (invalid character)  
cd umlaut  
git mv this_has_a_$'\201' this_has_a_o  
git commit -m "fix"  
git annex direct # fails with getSymbolicLinkStatus: does not exist (No such file or directory)  

### What is the expected output? What do you see instead?

Expected is a repository switched to direct mode.
The result is a repository which can't be switched to direct mode.

### What version of git-annex are you using? On what operating system?

git-annex version: 3.20130114
OS: Arch Linux (3.7.2-2-ck)

### Please provide any additional information below.

The second bug seams to be very specific about folder- and/or filename.
I believe that it has something to do with the space in the foldername.

> Fixed both bugs. You should be able to upgrade git-annex and re-run the command
> and end up with a working direct-mode repository. [[done]] --[[Joey]] 
