diff --git a/roseus/roseus.cpp b/roseus/roseus.cpp
index 22f6d7e91..6cb7669cf 100644
--- a/roseus/roseus.cpp
+++ b/roseus/roseus.cpp
@@ -1293,8 +1293,12 @@ void EusValueToXmlRpc(register context *ctx, pointer argp, XmlRpc::XmlRpcValue&
string skey = string((char *)get_string(ccar(v)->c.sym.pname));
boost::algorithm::to_lower(skey);
stringstream << "" << skey << "0";
+ }
+ else if ( isstring(ccar(v)) ) {
+ string skey = string((char *)get_string(ccar(v)));
+ stringstream << "" << skey << "0";
}else{
- ROS_ERROR("ROSEUS_SET_PARAM: EusValueToXmlRpc: assuming symbol");prinx(ctx,ccar(v),ERROUT);flushstream(ERROUT);terpri(ERROUT);
+ ROS_ERROR("ROSEUS_SET_PARAM: EusValueToXmlRpc: invalid param name; requires symbol or string");prinx(ctx,ccar(v),ERROUT);flushstream(ERROUT);terpri(ERROUT);
}
}else{
ROS_ERROR("ROSEUS_SET_PARAM: EusValueToXmlRpc: assuming alist");prinx(ctx,argp,ERROUT);flushstream(ERROUT);terpri(ERROUT);
@@ -1315,6 +1319,12 @@ void EusValueToXmlRpc(register context *ctx, pointer argp, XmlRpc::XmlRpcValue&
EusValueToXmlRpc(ctx, ccdr(v), p);
rpc_value[skey] = p;
}
+ else if ( isstring(ccar(v)) ) {
+ string skey = string((char *)get_string(ccar(v)));
+ XmlRpc::XmlRpcValue p;
+ EusValueToXmlRpc(ctx, ccdr(v), p);
+ rpc_value[skey] = p;
+ }
}
a=ccdr(a);
}