diff --git a/dios/rst/common.cpp b/dios/rst/common.cpp
index 0cbdaae9c752463e00189441a4a368949cb3900f..4598155057144a9e62cb49df464a4f492f413f14 100644
--- a/dios/rst/common.cpp
+++ b/dios/rst/common.cpp
@@ -5,6 +5,8 @@ uint64_t __tainted = 0;
 // TODO call from abstraction init
 __attribute__((constructor)) void __tainted_init()
 {
-    __vm_poke( &__tainted, _VM_ML_Taints, 0xF );
+    __vm_pointer_t ptr = __vm_pointer_split( &__tainted );
+    __vm_poke( _VM_ML_Taints, ptr.obj, ptr.off, 4, 0xF );
+    __vm_poke( _VM_ML_Taints, ptr.obj, ptr.off + 4, 4, 0xF );
 }