Index: libcfa/src/concurrency/kernel.hfa
===================================================================
--- libcfa/src/concurrency/kernel.hfa	(revision 43db35ef697f127e07fa87fb20b65cf7f776cc82)
+++ libcfa/src/concurrency/kernel.hfa	(revision 160f1aac26e1a30b211a4a3ff5d2e52834ae3c0e)
@@ -136,5 +136,5 @@
 
 	// Link lists fields
-	inline dlink(processor);
+	dlink(processor) link;
 
 	// special init fields
@@ -158,5 +158,10 @@
 #endif
 };
-P9_EMBEDDED( processor, dlink(processor) )
+// P9_EMBEDDED( processor, dlink(processor) )
+static inline tytagref( dlink(processor), dlink(processor) ) ?`inner( processor & this ) {
+    dlink(processor) & b = this.link;
+    tytagref( dlink(processor), dlink(processor) ) result = { b };
+    return result;
+}
 
 void  ?{}(processor & this, const char name[], struct cluster & cltr);
Index: tools/gdb/utils-gdb.py
===================================================================
--- tools/gdb/utils-gdb.py	(revision 43db35ef697f127e07fa87fb20b65cf7f776cc82)
+++ tools/gdb/utils-gdb.py	(revision 160f1aac26e1a30b211a4a3ff5d2e52834ae3c0e)
@@ -159,5 +159,5 @@
 
 		# if we already saw the root, then go forward
-		my_next = self.curr['__anonymous_object2225']['_X4nextPY13__tE_generic__1']
+		my_next = self.curr['_X4link']['_X4nextPY13__tE_generic__1']
 		self.curr = my_next.cast(cfa_t.processor_ptr)
 
@@ -168,4 +168,12 @@
 		return self.curr
 
+def start_from_dlist(dlist):
+	fs = dlist.type.fields()
+	if len(fs) != 1:
+		print("Error, can't understand dlist type for", dlist, dlist.name, dlist.type)
+		return None
+
+	return dlist[fs[0]]
+
 def proc_list(cluster):
 	"""
@@ -174,6 +182,7 @@
 	cfa_t = get_cfa_types()
 	proclist = cluster['_X5procsS19__cluster_proc_list_1']
-	idle = proclist['_X5idlesS5dlist_S9processorS5dlink_S9processor___1']['__anonymous_object2167']['_X4nextPY13__tE_generic__1']
-	active = proclist['_X7activesS5dlist_S9processorS5dlink_S9processor___1']['__anonymous_object2167']['_X4nextPY13__tE_generic__1']
+
+	idle = start_from_dlist(proclist['_X5idlesS5dlist_S9processorS5dlink_S9processor___1'])
+	active = start_from_dlist(proclist['_X7activesS5dlist_S9processorS5dlink_S9processor___1'])
 	return ProcIter(active.cast(cfa_t.processor_ptr)), ProcIter(idle.cast(cfa_t.processor_ptr))
 
