diff --git a/include/dollop.h b/include/dollop.h
index a1220411d679030820a5218ef83c5dd39e0bb890..8619c70f102715f67dd88bf426e4958888b3d1d7 100644
--- a/include/dollop.h
+++ b/include/dollop.h
@@ -92,6 +92,7 @@ class Dollop_t : public Placeable_t, public std::list<DollopEntry_t*> {
 		Dollop_t() :
 			m_size(0),
 			m_fallthrough_dollop(NULL),
+			m_fallback_dollop(NULL),
 			m_fallthrough_patched(false),
 			m_coalesced(false),
 			m_was_truncated(false) {}
@@ -113,6 +114,11 @@ class Dollop_t : public Placeable_t, public std::list<DollopEntry_t*> {
 
 		friend std::ostream &operator<<(std::ostream &, const Dollop_t &);
 
+		void FallbackDollop(Dollop_t *fallback) {
+			m_fallback_dollop = fallback;
+		}
+		Dollop_t *FallbackDollop(void) const { return m_fallback_dollop; }
+
 		void FallthroughDollop(Dollop_t *fallthrough) {
 			m_fallthrough_dollop = fallthrough;
 		}
@@ -131,7 +137,7 @@ class Dollop_t : public Placeable_t, public std::list<DollopEntry_t*> {
 	private:
 		size_t CalculateWorstCaseSize();
 		size_t m_size;
-		Dollop_t *m_fallthrough_dollop;
+		Dollop_t *m_fallthrough_dollop, *m_fallback_dollop;
 		bool m_fallthrough_patched;
 		bool m_coalesced;
 		bool m_was_truncated;