     return content
 
 
-  # ---------------------------------------------------------- Sync Version
+  __processIncludeTag: (resourcePath, content, cbfn, offset = 0)->
+
+    [ tagStartIndex, res ] = @__extractNextIncludeTag resourcePath, content, offset
+    if tagStartIndex is -1
+      return cbfn null, content
+
+    [ tagLineStartIndex, indentLevel, tagLineEndIndex, tag, primaryQuotedString, otherParameterMap ] = res
+    offset = tagStartIndex + 1
+    
+    subResourcePath = path.join (path.dirname resourcePath), primaryQuotedString
+    
+    # extract subContent (recursive)
+    @__process subResourcePath, otherParameterMap.isolated, true, (err, subContent)=>
+
+      return cbfn err if err
+
+      content = @__insertIncludeTagContents resourcePath, subResourcePath, subContent, content, tagLineStartIndex, tagLineEndIndex
+      
+      @__processIncludeTag resourcePath, content, cbfn, offset
+
 
   __processSyncIncludeTag: (resourcePath, content)->
 


    @__process resourcePath, true, true, (err, content)=>

      return cbfn, err if err

      @contentProvider.setContent resourcePath, content, (err)=>

        return cbfn, err




    res = @__extractCommonOptions tagString, ['isolated'], resourcePath, content, tagStartIndex, linebreakCharacter, indentCharacter
    return [ tagStartIndex, res ]

  __insertIncludeTagContents: ( resourcePath, subResourcePath, subContent, content, tagLineStartIndex, tagLineEndIndex ) ->

    # insert comments
    if @optionMap.insertComments
