Revise descriptor stuff.
descriptor.c(h) was broken by the commit
	2da1668f4c7d7871a7212db10af606a7e646abd6
and it now causes a crash bug.
Instead of reverting the change revising the stuff completely.