That's strange. Does the GitHub repo contain all the latest changesets? Did you build on Ubuntu with the above mentioned gcc-4.9 packages? I also just rebuilt everything on Ubuntu 14.04 using the same cmake flags plus -DBISON_EXECUTABLE=/dummy in order to prevent running bison because bison 3.0 fails to process parser.y. The resulting zorba binary still crashes when processing val-inplace2.xq. However, the valgrind output is different from those of the Fedora build: $ valgrind ./zorba ../../test/rbkt/Queries/zorba/schemas/val-inplace2.xq ==29363== Memcheck, a memory error detector ==29363== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. ==29363== Using Valgrind-3.10.0.SVN and LibVEX; rerun with -h for copyright info ==29363== Command: ./zorba ../../test/rbkt/Queries/zorba/schemas/val-inplace2.xq ==29363== ==29363== Conditional jump or move depends on uninitialised value(s) ==29363== at 0x42D28B6: zorba::TranslatorImpl::check_boundary_whitespace(zorba::DirElemContent const&) (rchandle.h:214) ==29363== by 0x425FBC5: zorba::DirElemContentList::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:3736) ==29363== by 0x425C3B8: zorba::DirElemConstructor::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:3705) ==29363== by 0x425D06D: zorba::VarBinding::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:5085) ==29363== by 0x425F571: zorba::CopyVarList::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:5064) ==29363== by 0x425CFF4: zorba::TransformExpr::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:5041) ==29363== by 0x425AA75: zorba::QueryBody::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:1174) ==29363== by 0x425A152: zorba::MainModule::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:147) ==29363== by 0x427FF36: zorba::translate_aux(zorba::TranslatorImpl*, zorba::parsenode const&, zorba::static_context*, unsigned int, zorba::ModulesInfo*, std::map, std::allocator > >, zorba::rstring, std::allocator > >, std::less, std::allocator > > >, std::allocator, std::allocator > > const, zorba::rstring, std::allocator > > > > > const&, bool, zorba::StaticContextConsts::xquery_version_t) (translator.cpp:16432) ==29363== by 0x42803AF: zorba::translate(zorba::parsenode const&, zorba::CompilerCB*) (translator.cpp:16463) ==29363== by 0x43A2FF2: zorba::XQueryCompiler::translate(zorba::rchandle, zorba::audit::ScopedRecord&) (compiler_api.cpp:359) ==29363== by 0x43A3646: zorba::XQueryCompiler::compile(zorba::rchandle const&, bool, unsigned long&, zorba::audit::ScopedRecord&) (compiler_api.cpp:335) ==29363== ==29363== Conditional jump or move depends on uninitialised value(s) ==29363== at 0x42D28B6: zorba::TranslatorImpl::check_boundary_whitespace(zorba::DirElemContent const&) (rchandle.h:214) ==29363== by 0x425FB44: zorba::DirElemContentList::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:3736) ==29363== by 0x425C3B8: zorba::DirElemConstructor::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:3705) ==29363== by 0x425D06D: zorba::VarBinding::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:5085) ==29363== by 0x425F571: zorba::CopyVarList::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:5064) ==29363== by 0x425CFF4: zorba::TransformExpr::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:5041) ==29363== by 0x425AA75: zorba::QueryBody::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:1174) ==29363== by 0x425A152: zorba::MainModule::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:147) ==29363== by 0x427FF36: zorba::translate_aux(zorba::TranslatorImpl*, zorba::parsenode const&, zorba::static_context*, unsigned int, zorba::ModulesInfo*, std::map, std::allocator > >, zorba::rstring, std::allocator > >, std::less, std::allocator > > >, std::allocator, std::allocator > > const, zorba::rstring, std::allocator > > > > > const&, bool, zorba::StaticContextConsts::xquery_version_t) (translator.cpp:16432) ==29363== by 0x42803AF: zorba::translate(zorba::parsenode const&, zorba::CompilerCB*) (translator.cpp:16463) ==29363== by 0x43A2FF2: zorba::XQueryCompiler::translate(zorba::rchandle, zorba::audit::ScopedRecord&) (compiler_api.cpp:359) ==29363== by 0x43A3646: zorba::XQueryCompiler::compile(zorba::rchandle const&, bool, unsigned long&, zorba::audit::ScopedRecord&) (compiler_api.cpp:335) ==29363== ==29363== Conditional jump or move depends on uninitialised value(s) ==29363== at 0x42D28CD: zorba::TranslatorImpl::check_boundary_whitespace(zorba::DirElemContent const&) (rchandle.h:214) ==29363== by 0x425FB44: zorba::DirElemContentList::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:3736) ==29363== by 0x425C3B8: zorba::DirElemConstructor::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:3705) ==29363== by 0x425D06D: zorba::VarBinding::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:5085) ==29363== by 0x425F571: zorba::CopyVarList::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:5064) ==29363== by 0x425CFF4: zorba::TransformExpr::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:5041) ==29363== by 0x425AA75: zorba::QueryBody::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:1174) ==29363== by 0x425A152: zorba::MainModule::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:147) ==29363== by 0x427FF36: zorba::translate_aux(zorba::TranslatorImpl*, zorba::parsenode const&, zorba::static_context*, unsigned int, zorba::ModulesInfo*, std::map, std::allocator > >, zorba::rstring, std::allocator > >, std::less, std::allocator > > >, std::allocator, std::allocator > > const, zorba::rstring, std::allocator > > > > > const&, bool, zorba::StaticContextConsts::xquery_version_t) (translator.cpp:16432) ==29363== by 0x42803AF: zorba::translate(zorba::parsenode const&, zorba::CompilerCB*) (translator.cpp:16463) ==29363== by 0x43A2FF2: zorba::XQueryCompiler::translate(zorba::rchandle, zorba::audit::ScopedRecord&) (compiler_api.cpp:359) ==29363== by 0x43A3646: zorba::XQueryCompiler::compile(zorba::rchandle const&, bool, unsigned long&, zorba::audit::ScopedRecord&) (compiler_api.cpp:335) ==29363== ==29363== Conditional jump or move depends on uninitialised value(s) ==29363== at 0x42D28B6: zorba::TranslatorImpl::check_boundary_whitespace(zorba::DirElemContent const&) (rchandle.h:214) ==29363== by 0x425FBC5: zorba::DirElemContentList::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:3736) ==29363== by 0x425C3B8: zorba::DirElemConstructor::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:3705) ==29363== by 0x425C560: zorba::DirElemContent::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:4007) ==29363== by 0x425FB55: zorba::DirElemContentList::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:3739) ==29363== by 0x425C3B8: zorba::DirElemConstructor::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:3705) ==29363== by 0x425D06D: zorba::VarBinding::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:5085) ==29363== by 0x425F571: zorba::CopyVarList::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:5064) ==29363== by 0x425CFF4: zorba::TransformExpr::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:5041) ==29363== by 0x425AA75: zorba::QueryBody::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:1174) ==29363== by 0x425A152: zorba::MainModule::accept(zorba::parsenode_visitor&) const (parsenodes.cpp:147) ==29363== by 0x427FF36: zorba::translate_aux(zorba::TranslatorImpl*, zorba::parsenode const&, zorba::static_context*, unsigned int, zorba::ModulesInfo*, std::map, std::allocator > >, zorba::rstring, std::allocator > >, std::less, std::allocator > > >, std::allocator, std::allocator > > const, zorba::rstring, std::allocator > > > > > const&, bool, zorba::StaticContextConsts::xquery_version_t) (translator.cpp:16432) ==29363== ==29363== Invalid read of size 4 ==29363== at 0x49CE5DD: zorba::store::Item::removeReference() (item.h:125) ==29363== by 0x4772C47: zorba::NoaryBaseIterator::closeImpl(zorba::PlanState&) (item_handle.h:62) ==29363== by 0x470E830: zorba::UnaryBaseIterator::closeImpl(zorba::PlanState&) (plan_iterator.h:438) ==29363== by 0x47F57D0: zorba::TransformIterator::closeImpl(zorba::PlanState&) (plan_iterator.h:438) ==29363== by 0x46FDD94: zorba::PlanWrapper::close() (plan_iterator.h:438) ==29363== by 0x411B54A: zorba::XQueryImpl::dispose(zorba::rchandle const&) (xqueryimpl.cpp:726) ==29363== by 0x412125A: zorba::XQueryImpl::execute(std::ostream&, Zorba_SerializerOptions const*) (xqueryimpl.cpp:1145) ==29363== by 0x8054D92: compileAndExecute(zorba::Zorba*, zorba::SmartPtr&, std::string const&, std::istream&, std::ostream&, Timers&) (zorbacmd.cpp:525) ==29363== by 0x80573C2: main (zorbacmd.cpp:824) ==29363== Address 0x7706630 is 8 bytes inside a block of size 216 free'd ==29363== at 0x402B838: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==29363== by 0x4A5CB25: zorba::simplestore::PULImpl::~PULImpl() (simple_pul.cpp:152) ==29363== by 0x49CE4BF: zorba::store::Item::free() (item.cpp:45) ==29363== by 0x49CE723: zorba::store::Item::removeReference() (item.cpp:207) ==29363== by 0x4772C47: zorba::NoaryBaseIterator::closeImpl(zorba::PlanState&) (item_handle.h:62) ==29363== by 0x47F57B7: zorba::TransformIterator::closeImpl(zorba::PlanState&) (plan_iterator.h:438) ==29363== by 0x46FDD94: zorba::PlanWrapper::close() (plan_iterator.h:438) ==29363== by 0x411B54A: zorba::XQueryImpl::dispose(zorba::rchandle const&) (xqueryimpl.cpp:726) ==29363== by 0x412125A: zorba::XQueryImpl::execute(std::ostream&, Zorba_SerializerOptions const*) (xqueryimpl.cpp:1145) ==29363== by 0x8054D92: compileAndExecute(zorba::Zorba*, zorba::SmartPtr&, std::string const&, std::istream&, std::ostream&, Timers&) (zorbacmd.cpp:525) ==29363== by 0x80573C2: main (zorbacmd.cpp:824) ==29363== ==29363== Invalid read of size 4 ==29363== at 0x49CE70E: zorba::store::Item::removeReference() (item.cpp:206) ==29363== by 0x4772C47: zorba::NoaryBaseIterator::closeImpl(zorba::PlanState&) (item_handle.h:62) ==29363== by 0x470E830: zorba::UnaryBaseIterator::closeImpl(zorba::PlanState&) (plan_iterator.h:438) ==29363== by 0x47F57D0: zorba::TransformIterator::closeImpl(zorba::PlanState&) (plan_iterator.h:438) ==29363== by 0x46FDD94: zorba::PlanWrapper::close() (plan_iterator.h:438) ==29363== by 0x411B54A: zorba::XQueryImpl::dispose(zorba::rchandle const&) (xqueryimpl.cpp:726) ==29363== by 0x412125A: zorba::XQueryImpl::execute(std::ostream&, Zorba_SerializerOptions const*) (xqueryimpl.cpp:1145) ==29363== by 0x8054D92: compileAndExecute(zorba::Zorba*, zorba::SmartPtr&, std::string const&, std::istream&, std::ostream&, Timers&) (zorbacmd.cpp:525) ==29363== by 0x80573C2: main (zorbacmd.cpp:824) ==29363== Address 0x770662c is 4 bytes inside a block of size 216 free'd ==29363== at 0x402B838: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==29363== by 0x4A5CB25: zorba::simplestore::PULImpl::~PULImpl() (simple_pul.cpp:152) ==29363== by 0x49CE4BF: zorba::store::Item::free() (item.cpp:45) ==29363== by 0x49CE723: zorba::store::Item::removeReference() (item.cpp:207) ==29363== by 0x4772C47: zorba::NoaryBaseIterator::closeImpl(zorba::PlanState&) (item_handle.h:62) ==29363== by 0x47F57B7: zorba::TransformIterator::closeImpl(zorba::PlanState&) (plan_iterator.h:438) ==29363== by 0x46FDD94: zorba::PlanWrapper::close() (plan_iterator.h:438) ==29363== by 0x411B54A: zorba::XQueryImpl::dispose(zorba::rchandle const&) (xqueryimpl.cpp:726) ==29363== by 0x412125A: zorba::XQueryImpl::execute(std::ostream&, Zorba_SerializerOptions const*) (xqueryimpl.cpp:1145) ==29363== by 0x8054D92: compileAndExecute(zorba::Zorba*, zorba::SmartPtr&, std::string const&, std::istream&, std::ostream&, Timers&) (zorbacmd.cpp:525) ==29363== by 0x80573C2: main (zorbacmd.cpp:824) ==29363== ==29363== Invalid write of size 4 ==29363== at 0x49CE714: zorba::store::Item::removeReference() (item.cpp:206) ==29363== by 0x4772C47: zorba::NoaryBaseIterator::closeImpl(zorba::PlanState&) (item_handle.h:62) ==29363== by 0x470E830: zorba::UnaryBaseIterator::closeImpl(zorba::PlanState&) (plan_iterator.h:438) ==29363== by 0x47F57D0: zorba::TransformIterator::closeImpl(zorba::PlanState&) (plan_iterator.h:438) ==29363== by 0x46FDD94: zorba::PlanWrapper::close() (plan_iterator.h:438) ==29363== by 0x411B54A: zorba::XQueryImpl::dispose(zorba::rchandle const&) (xqueryimpl.cpp:726) ==29363== by 0x412125A: zorba::XQueryImpl::execute(std::ostream&, Zorba_SerializerOptions const*) (xqueryimpl.cpp:1145) ==29363== by 0x8054D92: compileAndExecute(zorba::Zorba*, zorba::SmartPtr&, std::string const&, std::istream&, std::ostream&, Timers&) (zorbacmd.cpp:525) ==29363== by 0x80573C2: main (zorbacmd.cpp:824) ==29363== Address 0x770662c is 4 bytes inside a block of size 216 free'd ==29363== at 0x402B838: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==29363== by 0x4A5CB25: zorba::simplestore::PULImpl::~PULImpl() (simple_pul.cpp:152) ==29363== by 0x49CE4BF: zorba::store::Item::free() (item.cpp:45) ==29363== by 0x49CE723: zorba::store::Item::removeReference() (item.cpp:207) ==29363== by 0x4772C47: zorba::NoaryBaseIterator::closeImpl(zorba::PlanState&) (item_handle.h:62) ==29363== by 0x47F57B7: zorba::TransformIterator::closeImpl(zorba::PlanState&) (plan_iterator.h:438) ==29363== by 0x46FDD94: zorba::PlanWrapper::close() (plan_iterator.h:438) ==29363== by 0x411B54A: zorba::XQueryImpl::dispose(zorba::rchandle const&) (xqueryimpl.cpp:726) ==29363== by 0x412125A: zorba::XQueryImpl::execute(std::ostream&, Zorba_SerializerOptions const*) (xqueryimpl.cpp:1145) ==29363== by 0x8054D92: compileAndExecute(zorba::Zorba*, zorba::SmartPtr&, std::string const&, std::istream&, std::ostream&, Timers&) (zorbacmd.cpp:525) ==29363== by 0x80573C2: main (zorbacmd.cpp:824) ==29363== DDType==29363== ==29363== HEAP SUMMARY: ==29363== in use at exit: 0 bytes in 0 blocks ==29363== total heap usage: 18,437 allocs, 18,437 frees, 5,506,018 bytes allocated ==29363== ==29363== All heap blocks were freed -- no leaks are possible ==29363== ==29363== For counts of detected and suppressed errors, rerun with: -v ==29363== Use --track-origins=yes to see where uninitialised values come from ==29363== ERROR SUMMARY: 8 errors from 7 contexts (suppressed: 0 from 0)