     React.createElement @props.tag, @props, value
 
   renderRejected: (error) ->
-    @props.catch.call this, error
+    if typeof @props.children is 'function'
+      @props.children(error, null) ? null
+    if @props.catch?
+      @props.catch.call this, error
+    else
+      null
 
   defaultThen: (value) ->
     React.createElement @props.tag, @props, value
 
   defaultCatch: (error) ->
-    React.createElement @props.tag, @props, <code>{error.toString()}</code>
+    React.createElement @props.tag, @props, <code className="promise-renderer-error">{error.toString()}</code>

      classList?.remove @props.pendingClass

  renderResolved: (value) ->
    if typeof @props.then is 'string'
      @renderSimpleLookup value, @props.then.split '.'
    else
      @props.then.call this, value

  renderSimpleLookup: (value, path) ->
    until path.length is 0

      @renderRejected @state.error

    else
      try
        initialRender = if typeof @props.children is 'function'
          @props.children()
        else
          @props.children
        initialRender ? null
      catch error
        @renderRejected error

  componentDidUpdate: (prevProps, prevState) ->
    classList = @getDOMNode()?.classList
