--- b/ctl_equal.c	2009-01-31 23:06:47.000000000 +0100
+++ b/ctl_equal.c	2014-09-15 16:14:37.218286376 +0200
@@ -263,7 +263,8 @@ 
 	for(i = 0; i < equal->num_input_controls; i++) {
 		if(equal->control_data->control[i].type == LADSPA_CNTRL_INPUT) {
 			index = equal->control_data->control[i].index;
-			if(equal->klass->PortDescriptors[index] !=
+			if((equal->klass->PortDescriptors[index] & 
+					(LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL)) !=
 					(LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL)) {
 				SNDERR("Problem with control file %s, %d.", controls, index);
 				return -1;
@@ -284,12 +285,14 @@ 
 	}
 
 	/* Make sure that the control file makes sense */
-	if(equal->klass->PortDescriptors[equal->control_data->input_index] !=
+	if((equal->klass->PortDescriptors[equal->control_data->input_index] & 
+			(LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO))!=
 			(LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO)) {
 		SNDERR("Problem with control file %s.", controls);
 		return -1;
 	}
-	if(equal->klass->PortDescriptors[equal->control_data->output_index] !=
+	if((equal->klass->PortDescriptors[equal->control_data->output_index] & 
+			(LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO))!=
 			(LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO)) {
 		SNDERR("Problem with control file %s.", controls);
 		return -1;
--- b/ladspa_utils.c	2009-01-31 22:57:41.000000000 +0100
+++ b/ladspa_utils.c	2014-09-15 16:18:49.061293401 +0200
@@ -354,10 +354,12 @@ 
 						default_controls->control[index].type = LADSPA_CNTRL_OUTPUT;
 					}
 					index++;
-				} else if(psDescriptor->PortDescriptors[i] ==
+				} else if((psDescriptor->PortDescriptors[i] &
+						(LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO)) ==
 						(LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO)) {
 					default_controls->input_index = i;
-				} else if(psDescriptor->PortDescriptors[i] ==
+				} else if((psDescriptor->PortDescriptors[i] & 
+						(LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO)) ==
 						(LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO)) {
 					default_controls->output_index = i;
 				}
--- b/pcm_equal.c	2010-02-01 23:55:00.000000000 +0100
+++ b/pcm_equal.c	2014-09-15 16:21:32.892297971 +0200
@@ -231,12 +231,14 @@ 
 	}
 
 	/* Make sure that the control file makes sense */
-	if(equal->klass->PortDescriptors[equal->control_data->input_index] !=
+	if((equal->klass->PortDescriptors[equal->control_data->input_index] &   
+			(LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO)) !=
 			(LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO)) {
 		SNDERR("Problem with control file %s.", controls);
 		return -1;
 	}
-	if(equal->klass->PortDescriptors[equal->control_data->output_index] !=
+	if((equal->klass->PortDescriptors[equal->control_data->output_index] & 
+			(LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO)) !=
 			(LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO)) {
 		SNDERR("Problem with control file %s.", controls);
 		return -1;
