     else
       @_run_test @_session.item, @_next
   
-  _run: (patterns=[], id_index=0, callback=->) =>
+  _run: (patterns=[], id_index=0, descriptions=[], callback=->) =>
+    # Copy the chain, so that we can push our description without modifying
+    # the original.
+    descriptions = descriptions[..]
+    if @description?
+      descriptions.push @description
+    
     @_session =
+      descriptions: descriptions
       ran_a_test: false
       index: -1
       id_index: 0

      matched_pattern = false
      for pattern in @_session.patterns
        if pattern instanceof RegExp
          # This is incorrect, as it only tests the tests description, and
          # not the entire chain, but we'll fix that soon.
          if pattern.test test.description
            matched_pattern = true
            # Break out of the loop since we only care about one match
            break

    
    # And emit our own suite start!
    @emit 'suite_start'
    suite._run @_session.patterns, @_session.id_index, @_session.descriptions
  
  _next: =>
    @_session.item = @_tests_and_suites[++@_session.index]
