diff --git a/HTMLKit/HTMLParser.m b/HTMLKit/HTMLParser.m
index 76fbab9..2c18460 100644
--- a/HTMLKit/HTMLParser.m
+++ b/HTMLKit/HTMLParser.m
@@ -17,6 +17,9 @@
#import "HTMLMarker.h"
#import "NSString+HTMLKit.h"
+@interface HTMLTokenizer (Private)
+@property (nonatomic, weak) HTMLParser *parser;
+@end
@interface HTMLDocument (Private)
@property (nonatomic, assign) HTMLDocumentReadyState readyState;
@@ -70,6 +73,7 @@
_stackOfOpenElements = [HTMLStackOfOpenElements new];
_listOfActiveFormattingElements = [NSMutableArray new];
_tokenizer = [[HTMLTokenizer alloc] initWithString:string];
+ _tokenizer.parser = self;
_pendingTableCharacterTokens = [[HTMLCharacterToken alloc] initWithString:@""];
diff --git a/HTMLKit/HTMLTokenizer.h b/HTMLKit/HTMLTokenizer.h
index c2c82dc..b9be8de 100644
--- a/HTMLKit/HTMLTokenizer.h
+++ b/HTMLKit/HTMLTokenizer.h
@@ -14,9 +14,13 @@
* HTML Tokenizer
* https://html.spec.whatwg.org/multipage/syntax.html#tokenization
*/
+
+@class HTMLParser;
+
@interface HTMLTokenizer : NSObject
@property (nonatomic, assign) HTMLTokenizerState state;
+@property (nonatomic, weak, readonly) HTMLParser *parser;
- (instancetype)initWithString:(NSString *)string;