libclang - saved translation unit reloading problem


Im working with libclang3.7~svn242178-1~exp1 (with little modified ClangSharp bindings) and i’d like to save and reload serialized translation units to improve loading time of C/C++ projects in MonoDevelop.
I use this code snippet to save header files:

CXTranslationUnit save;
ec = clang.parseTranslationUnit2 (Index,name,null,0,null,0,(uint)CXTranslationUnit_Flags.ForSerialization,out save);
error |= ec != CXErrorCode.Success;
if (!error) {
se = (CXSaveError)clang.saveTranslationUnit (pch, name + “.save”, clang.defaultSaveOptions (pch));
error |= se != CXSaveError.CXSaveError_None;
clang.disposeTranslationUnit (save);

I checked, the save happens with CXSaveError_None, and to load them i use this snippet, to show my problem, also reparsing them just after the load:

CXTranslationUnit load;
CXErrorCode ec = clang.createTranslationUnit2 (index, fileName + ".pch", out load);
uint numDiag = clang.getNumDiagnostics (load);
for (uint i = 0; i < numDiag; i++) {
CXDiagnostic diag = clang.getDiagnostic (load, i);
Console.WriteLine ("Loaded TU diagnostic: " + diag);
Console.WriteLine ("Loading: " + ec);
if (ec != CXErrorCode.Success)
else {
Console.WriteLine ("Reparsing TU: " + (CXErrorCode)clang.reparseTranslationUnit (load, 0, null, clang.defaultReparseOptions (load)));

The output of the code:

"Loading: Success
Reparsing TU: Failure"

So my questions are:
a., is this normal?
b., if not, what i am doing wrong? I tried to play with parse flags, but it made no difference.

c., now i create a new TU just to save it, because saving a TU, reparsing it, saving it again causes an a crash in libclang, is this a bug or a feature?
Related stacktrace: [0x7f4eb89be335] [0x7f4eb89c8e00] [0x7f4eb89e80aa] [0x7f4eb89eb03e] [0x7f4eb866c51c] [0x7f4eb867a958] [0x7f4eb867dc6e] [0x7f4eb85cd56f] [0x7f4eb85e221e]