diff --git a/initiator.go b/initiator.go
index dc3bc55981e007aa177a2d3450e9ebee6ddfa0b8..1598d4b44175cdec383201f6b3928c05d9069ff2 100644
--- a/initiator.go
+++ b/initiator.go
@@ -13,12 +13,14 @@ type Initiator struct {
 	storeFactory    MessageStoreFactory
 	logFactory      LogFactory
 	globalLog       Log
-	quitChans       map[SessionID]chan bool
+	quitChan        chan bool
 }
 
 //Start Initiator.
 func (i *Initiator) Start() error {
 
+	i.quitChan = make(chan bool)
+
 	for sessionID, s := range i.sessionSettings {
 		socketConnectHost, err := s.Setting(config.SocketConnectHost)
 		if err != nil {
@@ -30,9 +32,8 @@ func (i *Initiator) Start() error {
 			return fmt.Errorf("error on SocketConnectPort: %v", err)
 		}
 
-		i.quitChans[sessionID] = make(chan bool)
 		address := fmt.Sprintf("%v:%v", socketConnectHost, socketConnectPort)
-		go handleInitiatorConnection(address, i.globalLog, sessionID, i.quitChans[sessionID])
+		go handleInitiatorConnection(address, i.globalLog, sessionID, i.quitChan)
 	}
 
 	return nil
@@ -43,9 +44,7 @@ func (i *Initiator) Stop() {
 	defer func() {
 		_ = recover() // suppress sending on closed channel error
 	}()
-	for _, channel := range i.quitChans {
-		close(channel)
-	}
+	close(i.quitChan)
 }
 
 //NewInitiator creates and initializes a new Initiator.
@@ -56,7 +55,6 @@ func NewInitiator(app Application, storeFactory MessageStoreFactory, appSettings
 	i.settings = appSettings
 	i.sessionSettings = appSettings.SessionSettings()
 	i.logFactory = logFactory
-	i.quitChans = make(map[SessionID]chan bool)
 
 	var err error
 	i.globalLog, err = logFactory.Create()