I went and compiled both john and crunch on my laptop and put them into $PATH

The hashed password is 'test', and test.txt just contained the word 'test'

echo test | john --stdin --format=NT hash.txt

cat test.txt | john --stdin --format=NT hash.txt
The above worked fine. I ran

crunch 1 4 | john --stdin --format=NT hash.txt
again, and it worked fine!

When I got the error before, it was on an installed Backtrack 4 on my netbook. I'll see if I can reproduce the error on it in a few hours