             brackets.pop()
 
       wasStarted = false
-      c.network.on 'start', ->
-        chai.expect(wasStarted).to.equal false
-        wasStarted = true
-      c.network.on 'end', ->
-        chai.expect(wasStarted).to.equal true
-        chai.expect(received).to.eql expected
-        done()
-
-      ins.post new noflo.IP 'openBracket', 1,
-        scope: 'x'
-      ins.post new noflo.IP 'openBracket', 'a',
-        scope: 'x'
-      ins.post new noflo.IP 'data', 'bar',
-        scope: 'x'
-      ins.post new noflo.IP 'closeBracket', 'a',
-        scope: 'x'
-      ins.post new noflo.IP 'closeBracket', 1,
-        scope: 'x'
+      checkStart = ->
+        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) ->
+        return done err if err
+        ins.post new noflo.IP 'openBracket', 1,
+          scope: 'x'
+        ins.post new noflo.IP 'openBracket', 'a',
+          scope: 'x'
+        ins.post new noflo.IP 'data', 'bar',
+          scope: 'x'
+        ins.post new noflo.IP 'closeBracket', 'a',
+          scope: 'x'
+        ins.post new noflo.IP 'closeBracket', 1,
+          scope: 'x'
 
   describe 'pure Process API merging two inputs', ->
     c = null

        received.push 'DISC'

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

      in2.connect()
      in2.send 'foo'
      in2.disconnect()
      in1.connect()
      in1.beginGroup 1
      in1.beginGroup 'a'
      in1.send 'baz'
      in1.endGroup()
      in1.endGroup()
      in1.disconnect()
    it 'should forward new-style brackets as expected regardless of sending order', (done) ->
      expected = [
        'CONN'

            brackets.pop()

      wasStarted = false
      checkStart = ->
        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) ->
        return done err if err
        in2.post new noflo.IP 'data', 'two',
          scope: 'x'
        in1.post new noflo.IP 'openBracket', 1,
          scope: 'x'
        in1.post new noflo.IP 'data', 'one',
          scope: 'x'
        in1.post new noflo.IP 'closeBracket', 1,
          scope: 'x'
