diff --git a/pd/src/x_connective.c b/pd/src/x_connective.c
index 3c5a7cfc25665cc07e09b0616eba4f9b84f30ea7..bf29421b425f8a7daee832bb604ade906ef1e677 100644
--- a/pd/src/x_connective.c
+++ b/pd/src/x_connective.c
@@ -1658,6 +1658,11 @@ value_setfloat(t_symbol *s, t_float f)
     return (0); 
 }
 
+static void vcommon_float(t_vcommon *x, t_float f)
+{
+    x->c_f = f;
+}
+
 static void *value_new(t_symbol *s)
 {
     t_value *x = (t_value *)pd_new(value_class);
@@ -1692,6 +1697,7 @@ static void value_setup(void)
     class_addfloat(value_class, value_float);
     vcommon_class = class_new(gensym("value"), 0, 0,
         sizeof(t_vcommon), CLASS_PD, 0);
+    class_addfloat(vcommon_class, vcommon_float);
 }
 
 /* -------------- overall setup routine for this file ----------------- */