Index: src/ResolvExpr/ResolveAssertions.cc
===================================================================
--- src/ResolvExpr/ResolveAssertions.cc	(revision 0b00df0b8a3e78119f146bb3d5894465fb9f24d4)
+++ src/ResolvExpr/ResolveAssertions.cc	(revision 40290497ebce3ed6bd65c1848592234c46d1046d)
@@ -300,8 +300,15 @@
 
 		Expression* postmutate( Expression* expr ) {
+			// defer missing inferred parameters until they are hopefully found later
+			std::vector<UniqueId> missingSlots;
 			// place inferred parameters into resolution slots
 			for ( UniqueId slot : expr->resnSlots ) {
 				// fail if no matching parameters found
-				InferredParams& inferParams = inferred.at( slot );
+				auto it = inferred.find( slot );
+				if ( it == inferred.end() ) {
+					missingSlots.push_back( slot );
+					continue;
+				}
+				InferredParams& inferParams = it->second;
 				
 				// place inferred parameters into proper place in expression
@@ -315,5 +322,5 @@
 
 			// clear resolution slots and return
-			expr->resnSlots.clear();
+			expr->resnSlots.swap( missingSlots );
 			return expr;
 		}
