diff --git a/src/dollop.cpp b/src/dollop.cpp
index 63cff189b4f133af5394d41384f1a6977b178ee0..b87ae33a5c311729ea2548876aa7b66fa6804498 100644
--- a/src/dollop.cpp
+++ b/src/dollop.cpp
@@ -7,7 +7,8 @@ namespace Zipr_SDK {
 	Dollop_t::Dollop_t(Instruction_t *start)
 	{
 		Instruction_t *loop = NULL;
-		m_size = CalculateWorstCaseSize();
+
+		m_size = 0;
 
 		if (start == NULL)
 			return;
@@ -16,6 +17,8 @@ namespace Zipr_SDK {
 		do {
 			push_back(new DollopEntry_t(loop));
 		} while (NULL != (loop = loop->GetFallthrough()));
+
+		m_size = CalculateWorstCaseSize();
 	}
 
 	size_t Dollop_t::CalculateWorstCaseSize()
@@ -62,7 +65,7 @@ namespace Zipr_SDK {
 				std::cout << "Checking "
 				          << std::hex << query.Instruction() << " ?= "
 									<< std::hex << p->Instruction() << "." << std::endl;
-				return query == *p;
+				return query.Instruction() == p->Instruction();
 			});
 		/*
 		 * No matching split point. Just return NULL.