diff --git a/src/ids.c b/src/ids.c
index 2ce117a..790600d 100644
--- a/src/ids.c
+++ b/src/ids.c
@@ -128,5 +128,19 @@ int msgQueueElemIdIntern(
   return 0;
 }
 
+int spaceListElemIdIntern(msgSpaceListElemId elemListId,msgSpaceId externId){
+   if (strlen(externId)>MSGSPACE_ID_LEN){
+	return -1;
+  }
+  /* sprintf(resNzgId,"/tmp/.nzg-%s",(char *)spaceId); */
+#ifdef _NZG_REALFILEID
+  sprintf(elemListId,"/tmp/nzgSpaceListElem-%s",(char *)externId);
+#else
+  sprintf(elemListId,"/nzgSpaceListElem-%s",(char *)externId);
+#endif
+  return 0;
+  
+}
+
 
 #endif
diff --git a/src/iface.h b/src/iface.h
index 95a9240..9fcc337 100644
--- a/src/iface.h
+++ b/src/iface.h
@@ -60,6 +60,7 @@ typedef struct MsgSpace {
 
 typedef struct MsgSpaceListElem {
   int ownerPid;
+  msgSpaceId spaceId;
   msgSpaceListElemId next;
 } msgSpaceListElem;
 
diff --git a/src/proto.h b/src/proto.h
index 8a2123d..ecbd732 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -29,6 +29,7 @@ int msgBufferInfoTabIdIntern(msgBufferInfoTabId dest, msgSpaceId src, int num);
 int msgQueueSemIdIntern(msgQueueSemId dest, msgSpaceId externId, int queueIdx);
 int msgQueueIdIntern(msgQueueId dest, msgSpaceId externId, int queueIdx);
 int msgQueueElemIdIntern(msgQueueElemId dest, msgQueueId src, int counter);
+int spaceListElemIdIntern(msgSpaceListElemId elemListId, msgSpaceId externId);
 /* list.c */
 /* poolCreate.c */
 int msgPoolCreate(msgSpaceId externId, int poolIdx, int buffNb, int buffSize);
@@ -73,7 +74,7 @@ msgSpace *msgSpaceCreate(msgSpaceId externId, int queueNb, int poolNb, msgPool *
 int msgSpaceDelete(msgSpaceId externId);
 /* spaceListAdd.c */
 /* spaceListElemCreate.c */
-int msgSpaceListElemCreate(msgSpaceListElemId elemenListId, msgSpaceId spaceId);
+int msgSpaceListElemCreate(msgSpaceListElemId elemenListId, msgSpace *space);
 /* spaceListElemLink.c */
 /* spaceListInit.c */
 int msgSpaceListInit(void);
diff --git a/src/spaceListElemCreate.c b/src/spaceListElemCreate.c
index 10445dc..100a111 100644
--- a/src/spaceListElemCreate.c
+++ b/src/spaceListElemCreate.c
@@ -2,12 +2,13 @@
 #include "ids.h"
 
 // cree un nouvel elemen
-int msgSpaceListElemCreate(msgSpaceListElemId elemenListId,msgSpaceId spaceId){
+int msgSpaceListElemCreate(msgSpaceListElemId elemenListId,msgSpace * space){
 
 		int shmElemenList;
+		
 		/*Creation de lid pour lespace de message*/
 
-		spaceListElemIdIntern(elemenListId,spaceId);
+		spaceListElemIdIntern(elemenListId,space->externId);
 
 
 		if ((shmElemenList=shm_open(elemenListId,
@@ -21,8 +22,11 @@ int msgSpaceListElemCreate(msgSpaceListElemId elemenListId,msgSpaceId spaceId){
 				NZG_ERROR("ftruncate",elemenListId);
 				goto ERROR;
 		};
+		
 		close (shmElemenList);
-
+		//TODO: mapper le shm en m�moire et remplir avec des informations
+		
+		//strcpy(spaceListElem->spaceId,space->id);
 		return 0;
 ERROR:
 		return-1;