Index: uspace/lib/c/generic/rtld/module.c
===================================================================
--- uspace/lib/c/generic/rtld/module.c	(revision 29405acfa4d5067562bc16ee6789b94bfe557964)
+++ uspace/lib/c/generic/rtld/module.c	(revision bab0f42542f9964d547692bfd310e99993b1003f)
@@ -288,4 +288,5 @@
 	list_foreach(rtld->modules, modules_link, module_t, m) {
 		m->ioffs = rtld->tls_size;
+		list_append(&m->imodules_link, &rtmd->imodules);
 		rtld->tls_size += m->tdata_size + m->tbss_size;
 	}
@@ -301,4 +302,5 @@
 		offs += m->tdata_size + m->tbss_size;
 		m->ioffs = rtld->tls_size - offs;
+		list_append(&m->imodules_link, &rtld->imodules);
 	}
 #endif
Index: uspace/lib/c/generic/rtld/rtld.c
===================================================================
--- uspace/lib/c/generic/rtld/rtld.c	(revision 29405acfa4d5067562bc16ee6789b94bfe557964)
+++ uspace/lib/c/generic/rtld/rtld.c	(revision bab0f42542f9964d547692bfd310e99993b1003f)
@@ -49,4 +49,5 @@
 	runtime_env = &rt_env_static;
 	list_initialize(&runtime_env->modules);
+	list_initialize(&runtime_env->imodules);
 	runtime_env->next_bias = 0x2000000;
 	runtime_env->program = NULL;
@@ -102,4 +103,5 @@
 	/* Initialize list of loaded modules */
 	list_initialize(&env->modules);
+	list_initialize(&env->imodules);
 	list_append(&prog->modules_link, &env->modules);
 
@@ -156,5 +158,5 @@
 	 */
 	offset = 0;
-	list_foreach(rtld->modules, modules_link, module_t, m) {
+	list_foreach(rtld->imodules, imodules_link, module_t, m) {
 		assert(offset + m->tdata_size + m->tbss_size <= rtld->tls_size);
 		memcpy(data + offset, m->tdata, m->tdata_size);
@@ -168,5 +170,5 @@
 	 */
 	offset = 0;
-	list_foreach(rtld->modules, modules_link, module_t, m) {
+	list_foreach(rtld->imodules, imodules_link, module_t, m) {
 		assert(offset + m->tdata_size + m->tbss_size <= rtld->tls_size);
 		offset += m->tbss_size;
Index: uspace/lib/c/include/types/rtld/module.h
===================================================================
--- uspace/lib/c/include/types/rtld/module.h	(revision 29405acfa4d5067562bc16ee6789b94bfe557964)
+++ uspace/lib/c/include/types/rtld/module.h	(revision bab0f42542f9964d547692bfd310e99993b1003f)
@@ -76,4 +76,6 @@
 	/** Link to list of all modules in runtime environment */
 	link_t modules_link;
+	/** Link to list of initial modules */
+	link_t imodules_link;
 
 	/** Link to BFS queue. Only used when doing a BFS of the module graph */
Index: uspace/lib/c/include/types/rtld/rtld.h
===================================================================
--- uspace/lib/c/include/types/rtld/rtld.h	(revision 29405acfa4d5067562bc16ee6789b94bfe557964)
+++ uspace/lib/c/include/types/rtld/rtld.h	(revision bab0f42542f9964d547692bfd310e99993b1003f)
@@ -57,4 +57,7 @@
 	list_t modules;
 
+	/** List of initial modules */
+	list_t imodules;
+
 	/** Temporary hack to place each module at different address. */
 	uintptr_t next_bias;
