         chai.expect(wasStarted).to.equal false
         wasStarted = true
       checkEnd = ->
-        chai.expect(wasStarted).to.equal true
-        chai.expect(received).to.eql expected
-        c.network.removeListener 'start', checkStart
-        c.network.removeListener 'end', checkEnd
-        done()
-      c.network.on 'start', checkStart
+        chai.expect(received).to.eql expected
+        chai.expect(wasStarted).to.equal true
+        done()
+      c.network.once 'start', checkStart
       c.network.once 'end', checkEnd
 
       c.start (err) ->

        chai.expect(wasStarted).to.equal false
        wasStarted = true
      checkEnd = ->
        chai.expect(wasStarted).to.equal true
        chai.expect(received).to.eql expected
        c.network.removeListener 'start', checkStart
        c.network.removeListener 'end', checkEnd
        done()
      c.network.on 'start', checkStart
      c.network.once 'end', checkEnd

      c.start (err) ->

        chai.expect(wasStarted).to.equal false
        wasStarted = true
      checkEnd = ->
        chai.expect(received).to.eql expected
        chai.expect(wasStarted).to.equal true
        done()
      c.network.once 'start', checkStart
      c.network.once 'end', checkEnd

      c.start (err) ->
