diff --git a/app/corpora/events.py b/app/corpora/events.py
index 7dfbc05b33bd6a207e67c3cd25bec41d5f4d389f..947f1ace9bb190ef11cace7754fde2913cd57542 100644
--- a/app/corpora/events.py
+++ b/app/corpora/events.py
@@ -5,14 +5,14 @@ from flask import current_app, request
 from flask_login import login_required
 from .CQiWrapper.CQiWrapper import CQiWrapper
 import logging
-import time
+
+
+analysis_clients = {}
 
 
 @socketio.on('init_corpus_analysis')
 @login_required
 def init_corpus_analysis(corpus_id):
-    logger = logging.getLogger(__name__)
-    logger.warning('init_corpus_analysis')
     ''' TODO: Check if current_user is allowed to subscribe to this '''
     socketio.start_background_task(observe_corpus_analysis_connection,
                                    current_app._get_current_object(),
@@ -24,28 +24,31 @@ def init_corpus_analysis(corpus_id):
 def recv_query(message):
     logger = logging.getLogger(__name__)
     logger.warning(message)
+    analysis_client = analysis_clients[request.sid]
 
 
 def observe_corpus_analysis_connection(app, corpus_id, session_id):
     logger = logging.getLogger(__name__)
     with app.app_context():
-        time.sleep(5)  # wait for IP of container only for dev
         corpus = Corpus.query.filter_by(id=corpus_id).first()
-        logger.warning('IP adress is: {}'.format(corpus.analysis_container_ip))
-        cqi_session = CQiWrapper(username='opaque', password='opaque',
-                                 host=corpus.analysis_container_ip, port=4877)
-        cqi_session.connect()
-        logger.warning(cqi_session.corpus_list_corpora())
+        while corpus.status != 'analysing':
+            db.session.refresh(corpus)
+            socketio.sleep(3)
+        analysis_client = CQiWrapper(username='opaque', password='opaque',
+                                     host='{}_analysis_container{}'.format(corpus.creator.username, corpus.id), port=4877)
+        analysis_clients[session_id] = analysis_client
+        analysis_client.connect()
+        logger.warning(analysis_client.corpus_list_corpora())
         corpus_name = 'CORPUS'
         result_subcorpus_name = 'Query-results'  # should be set by the user somehow
         query = '"and";'
-        cqi_session.create_attribute_strings(corpus_name)
+        analysis_client.create_attribute_strings(corpus_name)
         logger.warning('Log after create_attribute_strings.')
-        cqi_session.query_subcorpus(corpus_name, result_subcorpus_name, query)
+        analysis_client.query_subcorpus(corpus_name, result_subcorpus_name, query)
         logger.warning('Log after query_subcorpus.')
         while session_id in connected_sessions:
-            logger.warning('Run container, run!')
+            logger.warning(analysis_client.ctrl_ping())
             socketio.sleep(3)
+        analysis_clients.pop(session_id, None)
         corpus.status = 'stop analysis'
         db.session.commit()
-        logger.warning('Stop container, stop!')
diff --git a/app/events.py b/app/events.py
index b0ac4dc47d337ac8aeabd5b1577811c365f33eab..aded211fd612bfbb8de309bd80f5ae23cd4d406e 100644
--- a/app/events.py
+++ b/app/events.py
@@ -5,7 +5,6 @@ from .decorators import admin_required
 from .models import User
 import json
 import jsonpatch
-import logging
 
 
 '''