diff --git a/src/ehwrite.cpp b/src/ehwrite.cpp
index b9686a2305556c4e6adb5ec602bd4a8450883802..12a7b6f7f27d43ce9c254aeaa5962fb1b7741a70 100644
--- a/src/ehwrite.cpp
+++ b/src/ehwrite.cpp
@@ -883,10 +883,19 @@ void EhWriterImpl_t<ptrsize>::BuildFDEs()
 			current_fde->extend(this_insn,this);
 		}
 	}
+
+	const auto avg_insn_per_fde = insns_with_frame/(float)all_fdes.size();
+
+
+        assert(getenv("SELF_VALIDATE")==nullptr || all_fdes.size() > 10 ) ;
+        assert(getenv("SELF_VALIDATE")==nullptr || all_cies.size() > 0 ) ;
+        assert(getenv("SELF_VALIDATE")==nullptr || insns_with_frame > 10 );
+        assert(getenv("SELF_VALIDATE")==nullptr ||  avg_insn_per_fde > 1 ) ;
+
 	cout<<"# ATTRIBUTE ExceptionHandlerWrite::fdes_calculated="<<dec<<all_fdes.size()<<endl;
 	cout<<"# ATTRIBUTE ExceptionHandlerWrite::cies_calculated="<<dec<<all_cies.size()<<endl;
 	cout<<"# ATTRIBUTE ExceptionHandlerWrite::insns_with_eh_info="<<dec<<insns_with_frame<<endl;
-	cout<<"# ATTRIBUTE ExceptionHandlerWrite::avg_insns_per_fde="<<dec<<insns_with_frame/(float)all_fdes.size()<<endl;
+	cout<<"# ATTRIBUTE ExceptionHandlerWrite::avg_insns_per_fde="<<dec<<avg_insn_per_fde<<endl;
 }
 
 template<int ptrsize>
diff --git a/src/zipr.cpp b/src/zipr.cpp
index 92ec7d8f5320a422432a09cfcedd4c16e31975a0..b652248940728be9665407eaa66fbc978808d5b4 100644
--- a/src/zipr.cpp
+++ b/src/zipr.cpp
@@ -2221,6 +2221,9 @@ void ZiprImpl_t::PlaceDollops()
 		count_pins++;
 	}
 
+	assert(getenv("SELF_VALIDATE")==nullptr || count_pins > 10 ) ;
+	assert(getenv("SELF_VALIDATE")==nullptr || placement_queue.size() > 30 ) ;
+
 	cout<<"# ATTRIBUTE Zipr::pins_detected="<<dec<<count_pins<<endl;
 	cout<<"# ATTRIBUTE Zipr::placement_queue_size="<<dec<<placement_queue.size()<<endl;