diff --git a/libIRDB/src/core/decode_cs.cpp b/libIRDB/src/core/decode_cs.cpp
index f858b3f32d6feb5dfd957dda30d517e10d47238d..35119cd274dab619b230069c96c05f62e03c6d8c 100644
--- a/libIRDB/src/core/decode_cs.cpp
+++ b/libIRDB/src/core/decode_cs.cpp
@@ -196,7 +196,8 @@ DecodedInstructionCapstone_t::DecodedInstructionCapstone_t(const Instruction_t*
 	if(!i) throw std::invalid_argument("No instruction given to DecodedInstruction_t(Instruction_t*)");
 
         const auto length=i->GetDataBits().size();
-	const auto data=i->GetDataBits().data();
+	const auto &databits=i->GetDataBits();
+	const auto data=databits.data();
 	const auto address=i->GetAddress()->GetVirtualOffset();
         Disassemble(address,data,length);