diff --git a/src/signal/signal-cast-helper.cpp b/src/signal/signal-cast-helper.cpp
index bde4ff5d5792c0d518a8011fa013c98f5d88b6a1..9b1323f45cc381dc2aff6414cb5e968669e757c5 100644
--- a/src/signal/signal-cast-helper.cpp
+++ b/src/signal/signal-cast-helper.cpp
@@ -84,6 +84,14 @@ inline boost::any DefaultCastRegisterer<std::string>::cast
   return inst;
 }
 
+// for std::string, do not add std::endl at the end of the stream.
+template <>
+inline void DefaultCastRegisterer<std::string>::disp
+(const boost::any &object, std::ostream &os)
+{
+  os << boost::any_cast<std::string>(object);
+}
+
 /// Registers useful casts
 namespace {
 DefaultCastRegisterer<double> double_reg;