diff --git a/css/style.css b/css/style.css
index 0f8910d15a9e6cca809722be3a02568819e47e47..d73b2e6cd156b849a5ecada0ec6614a194bb9cb6 100644
--- a/css/style.css
+++ b/css/style.css
@@ -453,8 +453,8 @@ script {
 }
 
 .pgm-recv .list-group-item {
-  border : 1px solid #ddd !important ;
-  border-radius : 5px !important ;
+  border : 1px solid #ddd ;
+  border-radius : 5px ;
   vertical-align : middle ;
   padding : 3px;
 }
diff --git a/js/pgm_compiler.js b/js/pgm_compiler.js
index f471378e9bc84de64e49319d2aca9fcbe219df6a..4276ae5e12b5cc7036160c072e8a8dbb290e3eea 100644
--- a/js/pgm_compiler.js
+++ b/js/pgm_compiler.js
@@ -31,7 +31,7 @@ function block_compile(el) {
 
 function get_integer(str, error_target) {
   var i = parseInt(str) ;
-  if(isNaN(i)) {
+  if(!str.match(/^\d+$/) || isNaN(i)) {
     return pgm_selector_error(
         error_target,
         "la valeur fournie n\'est pas un entier : " + str
@@ -55,7 +55,7 @@ function get_boolean(data, error_target) {
 }
 
 function get_str(data, error_target) {
-  var str = '' + data ;
+  var str = typeof data === 'string' ? data : '' + data ;
   if(str.match(/^[\w\u00C0-\u02B8\-]+$/)) {
     return str ;
   } else {
@@ -90,7 +90,8 @@ function receiver_compile(el) {
   //compile child
   var rec_compile = "" ;
   if(target.className.match(/field/)) {
-    rec_compile = '"' + target.children[0].value + '"' ;
+    var err_target = selector_path_to_root(target.children[0]) ;
+    rec_compile = '"' + get_str(target.children[0].value, err_target) + '"' ;
   }
   else {
     rec_compile = cmd_compile(target) ;
@@ -102,7 +103,7 @@ function receiver_compile(el) {
   } else if (type === 'bool') {
     return 'get_boolean(' + rec_compile + ',' + err_target + ')' ;
   } else if (type === 'str') {
-    return 'get_str(' + rec_compile + ',' + err_target + ')' ;
+    return rec_compile ;
   } else if (type === 'direction') {
     return 'check_direction(' + rec_compile + ',' + err_target + ')'
   } else if (type === 'color') {