diff --git a/gtk/rtbuf_input_widget.c b/gtk/rtbuf_input_widget.c
index 03b7902..6036d23 100644
--- a/gtk/rtbuf_input_widget.c
+++ b/gtk/rtbuf_input_widget.c
@@ -197,10 +197,13 @@ rtbuf_input_widget_get_check (RtbufInputWidget *widget)
void rtbuf_input_widget_slider_value_changed (RtbufInputWidgetPrivate *priv)
{
double value;
+ double *unbound_value;
char str[64];
value = gtk_range_get_value(GTK_RANGE(priv->slider));
snprintf(str, sizeof(str), "%lg", value);
gtk_entry_set_text(GTK_ENTRY(priv->value), str);
+ unbound_value = rtbuf_in_unbound_value(priv->rtbuf, priv->in);
+ *unbound_value = value;
}
void
diff --git a/lib/signal.c b/lib/signal.c
index 32edcb6..676c76f 100644
--- a/lib/signal.c
+++ b/lib/signal.c
@@ -88,7 +88,7 @@ void rtbuf_signal_fun (s_rtbuf *rtb,
assert(rtb->proc);
assert(in < rtb->proc->in_n);
assert(rsf);
- default_value = &rtb->proc->in[in].def;
+ default_value = rtbuf_in_unbound_value(rtb, in);
rsf->signal = default_value;
rsf->sample_fun = rtbuf_signal_sample_from_sample;
v = &rtb->in[in];