         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()
-
-      in1.connect()
-      in1.beginGroup 1
-      in1.beginGroup 'a'
-      in1.send 'baz'
-      in1.endGroup()
-      in1.endGroup()
-      in1.disconnect()
-      in2.connect()
-      in2.send 'foo'
-      in2.disconnect()
+      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
+        in1.connect()
+        in1.beginGroup 1
+        in1.beginGroup 'a'
+        in1.send 'baz'
+        in1.endGroup()
+        in1.endGroup()
+        in1.disconnect()
+        in2.connect()
+        in2.send 'foo'
+        in2.disconnect()
     it 'should forward scopes as expected', (done) ->
       expected = [
         'x < 1'

            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'

  describe 'pure Process API merging two inputs', ->
    c = null

        received.push 'DISC'

      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
        ins.connect()
        ins.beginGroup 1
        ins.beginGroup 'a'
        ins.send 'baz'
        ins.endGroup()
        ins.endGroup()
        ins.disconnect()
    it 'should forward new-style brackets as expected', (done) ->
      expected = [
        '< 1'
