diff -ru ardour-0.9beta17.1.old/libs/ardour/ladspa_plugin.cc ardour-0.9beta17.1/libs/ardour/ladspa_plugin.cc
--- ardour-0.9beta17.1.old/libs/ardour/ladspa_plugin.cc	2004-06-24 06:47:42.000000000 +0300
+++ ardour-0.9beta17.1/libs/ardour/ladspa_plugin.cc	2004-07-06 17:02:59.000000000 +0300
@@ -313,8 +313,14 @@
 LadspaPlugin::set_parameter (unsigned long which, float val)
 {
 	/* XXX bounds checking */
-	shadow_data[which] = (LADSPA_Data) val;
-	ParameterChanged (which, val); /* EMIT SIGNAL */
+        unsigned long num_ports = parameter_count();
+        if ( which < num_ports ) { 
+	        shadow_data[which] = (LADSPA_Data) val;
+	        ParameterChanged (which, val); /* EMIT SIGNAL */
+	} else {
+	       /* XXX what to do? */
+	}
+   
 }
 
 float
Only in ardour-0.9beta17.1/libs/ardour: ladspa_plugin.cc~
