Index: ChangeLog
===================================================================
--- ChangeLog	(revision 4184)
+++ ChangeLog	(working copy)
@@ -1,3 +1,8 @@
+Tue Dec 19 14:18:53 2006  Stefan Westerfeld  <stefan@space.twc.de>
+
+	* gsloscillator.c: Take transpose factor into account for table
+	lookups when the oscillator frequency is constant. Fixes #387364.
+
 Mon Dec 18 20:14:34 2006  Stefan Westerfeld  <stefan@space.twc.de>
 
 	* bsebiquadfilter.c:
Index: gsloscillator.c
===================================================================
--- gsloscillator.c	(revision 4184)
+++ gsloscillator.c	(working copy)
@@ -135,12 +135,13 @@ osc_process (GslOscData   *osc,
       
       if (change_mask & OSC_FLAG_FREQ)
 	{
-	  gdouble fcpos, flpos;
+	  gdouble fcpos, flpos, transposed_freq;
 
 	  fcpos = osc->cur_pos * osc->wave.ifrac_to_float;
 	  flpos = osc->last_pos * osc->wave.ifrac_to_float;
 	  osc->last_freq_level = osc->config.cfreq;
-	  gsl_osc_table_lookup (osc->config.table, osc->last_freq_level, &osc->wave);
+	  transposed_freq = osc->config.transpose_factor * osc->last_freq_level;
+	  gsl_osc_table_lookup (osc->config.table, transposed_freq, &osc->wave);
 	  osc->last_pos = flpos / osc->wave.ifrac_to_float;
 	  osc->cur_pos = fcpos / osc->wave.ifrac_to_float;
 	}
