                 // Temporary transition info to be used by link and decision task nodes
                 var fetchedTransitionInfo: [String: String] = [:]
                 
+                currentTaskNodeType = taskNodeType
                 switch taskNodeType {
                 case .TextDisplay:
                     taskNode =  TextDisplayTaskNode(text: finalText)

                    taskNode = TextImageDisplayTaskNode(text: finalText, imageFilePath: nameComponents.imagePathUsingTreeURL(treeRootURL) ?? "")
                case .ImageTextDisplay:
                    taskNode = ImageTextDisplayTaskNode(imageFilePath: nameComponents.imagePathUsingTreeURL(treeRootURL) ?? "", text: finalText)
                case .Link:
                    var tasks: [LinkTaskNodeTask] = []
                    // Fetch transition info from task elements
                    let taskXMLIndexers = taskNodeXMLIndexer[UsbongXMLIdentifier.task].all
                    for taskXMLIndexer in taskXMLIndexers {
                        if let name = taskXMLIndexer.element?.attributes[UsbongXMLIdentifier.name] {
                            var nameComponents = name.componentsSeparatedByString("~")
                            if nameComponents.count > 1 {
                                let key = nameComponents.removeLast()
                                let translatedKey = key
                                tasks.append(LinkTaskNodeTask(identifier: key, value: translatedKey))
                                
                                let value = nameComponents.joinWithSeparator("~")
                                fetchedTransitionInfo[key] = value
                            }
                        }
                    }

    private let processDefinition: XMLIndexer
    
    public private(set) var currentTaskNode: TaskNode?
    private var currentTaskNodeType: TaskNodeType = .TextDisplay
    
    public var currentTargetTransitionName: String {
        get {
            // If current task node type is radio buttons, ignore selected module (transition to any)
            if let taskNode = currentTaskNode where currentTaskNodeType != .RadioButtons {
                switch taskNode {
                case let linkTaskNode as LinkTaskNode:
                    if let linkModule = linkTaskNode.currentSelectedModule {
