diff --git a/include/dynamic-graph/entity.h b/include/dynamic-graph/entity.h
index f0bc3e0e0ec831d7b292896d73e1262117514af9..0b866a61a0665e740ad9fb8c66d1a3b5a6d04d7c 100644
--- a/include/dynamic-graph/entity.h
+++ b/include/dynamic-graph/entity.h
@@ -84,6 +84,7 @@ namespace dynamicgraph
     }
     virtual const std::string& getClassName  () const = 0;
     virtual std::string getDocString () const;
+    bool hasSignal( const std::string & signame ) const;
     SignalBase<int>& getSignal (const std::string& signalName);
     const SignalBase<int>& getSignal (const std::string& signalName) const;
     std::ostream& displaySignalList(std::ostream& os) const;
diff --git a/src/dgraph/entity.cpp b/src/dgraph/entity.cpp
index 44c402ce91a13ca6010fbb232bc0ce378abf333c..adae4b606433455218c52f32849911611d433631 100644
--- a/src/dgraph/entity.cpp
+++ b/src/dgraph/entity.cpp
@@ -149,6 +149,11 @@ std::string Entity::getDocString () const
   return *(sigkey ->second) ;
 
 
+bool Entity::
+hasSignal( const string & signame ) const
+{
+  return (!(signalMap.find(signame) == signalMap.end ()));
+}
 
 SignalBase<int>& Entity::
 getSignal( const string & signame )