| 
							- diff --git a/gate.cpp b/gate.cpp
 - index bfd3135..420392a 100644
 - --- a/gate.cpp
 - +++ b/gate.cpp
 - @@ -27,7 +27,7 @@
 -  #define OPENED 3
 -  #define DECAY 4
 -  
 - -static LV2_Descriptor *gateDescriptor = NULL;
 - +static LV2_Descriptor gateDescriptor;
 -  
 -  class Gate {
 -  public:
 - @@ -191,28 +191,26 @@ static void cleanupGate(LV2_Handle instance) {
 -  }
 -  
 -  static void init() {
 - -
 - -	gateDescriptor = (LV2_Descriptor *) malloc(sizeof(LV2_Descriptor));
 - -	gateDescriptor->URI = p_uri;
 - -	gateDescriptor->instantiate = instantiateGate;
 - -	gateDescriptor->connect_port = connectPortGate;
 - -	gateDescriptor->activate = NULL;
 - -	gateDescriptor->run = runGate;
 - -	gateDescriptor->deactivate = NULL;
 - -	gateDescriptor->cleanup = cleanupGate;
 - -	gateDescriptor->extension_data = NULL;
 - +	gateDescriptor.URI = p_uri;
 - +	gateDescriptor.instantiate = instantiateGate;
 - +	gateDescriptor.connect_port = connectPortGate;
 - +	gateDescriptor.activate = NULL;
 - +	gateDescriptor.run = runGate;
 - +	gateDescriptor.deactivate = NULL;
 - +	gateDescriptor.cleanup = cleanupGate;
 - +	gateDescriptor.extension_data = NULL;
 -  }
 -  
 -  LV2_SYMBOL_EXPORT
 -  const LV2_Descriptor *lv2_descriptor(uint32_t index) {
 -  
 - -	if (!gateDescriptor) {
 - +	if (!gateDescriptor.URI) {
 -  		init();
 -  	}
 -  
 -  	switch (index) {
 -  	case 0:
 - -		return gateDescriptor;
 - +		return &gateDescriptor;
 -  	default:
 -  		return NULL;
 -  	}
 
 
  |