         # HTML5-only tags in IE7 and IE8.
         @$el.empty().append html
 
+      # Call `afterRender` if `render` was not wrapped
+      @afterRender() unless @renderIsWrapped
+
       # Return the view
       this
 
     # This method is called after a specific `render` of a derived class
     afterRender: ->
-      # Create a shortcut to the container element
-      # The view will be automatically appended to the container when rendered
-      # `container` option may override `autoRender` instance property
-      container = if @options.container?
-          @options.container
-        else
-          @containerSelector
-
       # Automatically append to DOM if the container element is set
-      if container
-        # Get the attach method name
-        containerMethod = if @options.containerMethod?
-            @options.containerMethod
-          else
-            @containerMethod
-
+      if @container
         # Append the view to the DOM
-        $(container)[containerMethod] @el
-
+        $(@container)[@containerMethod] @el
         # Trigger an event
         @trigger 'addedToDOM'
 
-      # Return this
+      # Return the view
       this
 
     # Disposal

    # List of subviews
    subviews: null
    subviewsByName: null

    # Wrap a `method` in order to call and `afterMethod`
    wrapMethod = (obj, name) ->
      func = obj[name]
      # Create a method on the instance which wraps the inherited
      obj[name] = ->
        # Call the original method
        func.apply obj, arguments
        # Call the corresponding `after-` method
        obj["after#{utils.upcase(name)}"].apply obj, arguments

    constructor: ->
      # Wrap `initialize` so `afterInitialize` is called afterwards
      # Only wrap if there is an overring method, otherwise we
      # call the after method directly
      unless @initialize is ChaplinView::initialize
        wrapMethod this, 'initialize'

      # Wrap `render` so `afterRender` is called afterwards
      unless @initialize is ChaplinView::initialize
        wrapMethod this, 'render'
      else
        # Otherwise just bind the `render` method normally
        @render = _(@render).bind this

      # Call Backbone’s constructor

    initialize: (options) ->
      ###console.debug 'ChaplinView#initialize', this, 'options', options###
      # No super call here, Backbone’s `initialize` is a no-op

      # Copy some options to instance properties
      if options
        for prop in ['autoRender', 'container', 'containerMethod']
          if options[prop]?
            @[prop] = options[prop]

      # Initialize subviews
      @subviews = []
