diff --git a/passes/hierarchy/keep_hierarchy.cc b/passes/hierarchy/keep_hierarchy.cc
index 61c66551b..bfae9fa38 100644
--- a/passes/hierarchy/keep_hierarchy.cc
+++ b/passes/hierarchy/keep_hierarchy.cc
@@ -37,6 +37,9 @@ struct ThresholdHierarchyKeeping {
 		if (module->has_attribute(ID(gate_cost_equivalent)))
 			return module->attributes[ID(gate_cost_equivalent)].as_int();
 
+		if (module->has_attribute(ID(keep_hierarchy)))
+			return 0;
+
 		if (module->get_blackbox_attribute())
 			log_error("Missing cost information on instanced blackbox %s\n", log_id(module));