fprintf inside __device__ function or __global__ can Icallf printf inside a __global__ or __device__

I have watched this forum and saw people being told that you can call printf inside a device function or global and it would just work.
I am in windows 7 using mks toolkit make. Things are fine but I cant make fprintf calls

========================================================================
make all
[
nvcc -gencode=arch=compute_20,code="sm_20,compute_20" --machine 64
-ccbin ‘c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN’
-Xcompiler ‘/EHsc /W3 /nologo /O2 /Zi /MT -I … ’
-I’C:/Users/LHickey/cuda/common/inc’
-I’C:/Users/LHickey/cuda/shared/inc’
-maxrregcount=32
–compile -o aop.obj aop.cu
]
aop.cu
aop.cu(179): error: calling a host function from a device/global function is not allowed

1 error detected in the compilation of “C:/Users/LHickey/AppData/Local/Temp/tmpxft_00001044_00000000-6_aop.cpp1.ii”.
make: Error code 2

  assert( t == 0); was the call that set this off. Looks like a compile time issue, not load time

is there some nvidia versions of things that work like fprintf marked device somewhere. standard fprintf sure enough is a host function and I can see why the compiler is upset.
~
~
~
~
~
~
~

The runtime for Fermi supports printf. Not fprintf.