 					tagStack.append(tag)
 
 					if tag == "q" {
-						result.mutableString.append(locale.quotationBeginDelimiter ?? "\"")
+						quoteDepth += 1
+						let delimiter = quoteDepth % 2 == 1 ? locale.quotationBeginDelimiter : locale.alternateQuotationBeginDelimiter
+						result.mutableString.append(delimiter ?? "\"")
 					}
 
 					let lastRange = attributeRanges.last?.range

		let result = NSMutableAttributedString()

		var attributeRanges = [ (range: NSRange, styles: CountedSet<Style>) ]()

		while let char = iterator.next() {
			if char == "<" && inTag == .none {

					if style != nil {
						currentStyles.insert(style!)
					}
				} else {
					if tag == "q" {
						let delimiter = quoteDepth % 2 == 1 ? locale.quotationEndDelimiter : locale.alternateQuotationEndDelimiter
						result.mutableString.append(delimiter ?? "\"")
						quoteDepth -= 1
					}

					let lastRange = attributeRanges.last?.range
