diff --git a/examples/jgrafchart/enc.c b/examples/jgrafchart/enc.c
index e00f458cf78d42f649c340d155326a237b5862c7..0465aa67df7eb1e6648a88a601694f50a5dbef0e 100644
--- a/examples/jgrafchart/enc.c
+++ b/examples/jgrafchart/enc.c
@@ -20,7 +20,8 @@ struct labcomm_encoder *enc_init( int fd) {
   return encoder;
 }
 
-void enc_run(struct labcomm_encoder * encoder) {
+void enc_run(struct labcomm_encoder *encoder, jg_foo *v) {
+#if 0
 	jg_foo v;
 
 	v.b = 17.17;
@@ -31,12 +32,12 @@ void enc_run(struct labcomm_encoder * encoder) {
 	v.g = 42;
 	v.h = 2;
 	v.i = 42.42;
+#endif
 
-	labcomm_encode_jg_foo(encoder, &v);
 	usleep(500000);
-	v.f += 42;
-	v.h += 42017040;
-	labcomm_encode_jg_foo(encoder, &v);
+	v->b += 42;
+	v->h += 42000000;
+	labcomm_encode_jg_foo(encoder, v);
 }
 
 void enc_cleanup(struct labcomm_encoder *encoder) {
diff --git a/examples/jgrafchart/enc.h b/examples/jgrafchart/enc.h
index 48aef8c77ce98055804e613129243ef8798f7de1..9fede0b1778df940010a265cb64441c00272c71d 100644
--- a/examples/jgrafchart/enc.h
+++ b/examples/jgrafchart/enc.h
@@ -3,6 +3,8 @@
 #include <labcomm_default_memory.h>
 #include <labcomm_default_scheduler.h>
 
+#include "jg.h"
+
 struct labcomm_encoder *enc_init(int fd) ;
-void enc_run(struct labcomm_encoder *encoder) ;
+void enc_run(struct labcomm_encoder *encoder, jg_foo *v) ;
 void enc_cleanup(struct labcomm_encoder *encoder) ;
diff --git a/examples/jgrafchart/testserver.c b/examples/jgrafchart/testserver.c
index 99911ec55c7c06b1c4fc88d9bc89a53c8698fb69..04b09fa498e9a0b38713fa085e9cc8660b418ef6 100644
--- a/examples/jgrafchart/testserver.c
+++ b/examples/jgrafchart/testserver.c
@@ -7,6 +7,7 @@
 #include <netinet/in.h>
 #include <netdb.h> 
 
+#include "jg.h"
 #include "dec.h"
 #include "enc.h"
 
@@ -16,10 +17,13 @@ void error(const char *msg)
     exit(0);
 }
 
-void do_labcomm(int sockfd)
+void do_labcomm(int sockfd, jg_foo *v)
 {
     void *enc = enc_init(sockfd);
-    enc_run(enc);
+    int i;
+    for(i=0; i<10;i++) {
+        enc_run(enc, v);
+    }
     enc_cleanup(enc);
 }
 
@@ -40,6 +44,11 @@ int main(int argc, char *argv[])
     if (sockfd < 0) 
         error("ERROR opening socket");
 
+    int so_reuseaddr = 1; //TRUE;
+    if(setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR, &so_reuseaddr, sizeof so_reuseaddr)) {
+        error("ERROR setting socket options");
+    }
+
     bzero((char *) &serv_addr, sizeof(serv_addr));
 
     serv_addr.sin_addr.s_addr = INADDR_ANY;
@@ -59,8 +68,19 @@ int main(int argc, char *argv[])
         perror("ERROR on accept");
        exit(1);
     }
+    
+    jg_foo v;
+
+    v.b = 17.17;
+    v.c = 1742;
+    v.d = 4217;
+    v.e = "hello";
+    v.f = 17;
+    v.g = 42;
+    v.h = 2;
+    v.i = 42.42;
 
-    do_labcomm(newsockfd);
+    do_labcomm(newsockfd, &v);
 
     close(newsockfd);
     close(sockfd);