         messages: []
 
     componentWillMount: ->
+        @selfUnmount = false
+
         peerIdForFounder = getSegments()[1]
         isFounder = not peerIdForFounder?
 
-        peer = new Peer(key: PEER_KEY)
+        @peer = new Peer(key: PEER_KEY)
 
         @connections = []
 
-        peer.on "error", (error) =>
+        @peer.on "error", (error) =>
             console.log error
 
             @props.addAlert type: "danger", "Something went terribly wrong! See console."
 
-        peer.on "open", (peerId) =>
-            @peerId = peer.id
+        @peer.on "open", (peerId) =>
+            @peerId = @peer.id
 
             if isFounder
-                peerIdForFounder = peer.id
+                peerIdForFounder = @peer.id
                 @setState peerIdForFounder: peerIdForFounder
 
-                peer.on "connection", (connection) =>
+                @peer.on "connection", (connection) =>
                     connection.on "open", =>
                         if @connections.length
                             peerIds = _.map @connections, (connection) -> connection.peer

                                        @listenForMessage connection

                connection.on "close", =>
                    @props.addAlert type: "warning", "Founder left the channel!"

                peer.on "connection", (connection) =>
                    connection.on "open", =>
                        @connections.push connection
                        @listenForMessage connection

                        @showAlertAboutNewConnection()

    render: ->
        (Dom.div null,

                    connection.on "data", (data) =>
                        if data.type == "newConnection"
                            _.forEach data.peerIds, (peerId) =>
                                connection = @peer.connect peerId

                                do (connection) =>
                                    connection.on "open", =>
