diff --git a/remoting/zookeeper/listener.go b/remoting/zookeeper/listener.go
index 97c61f2e460481b608fdad9132b33cd53023282f..6e1908bed459fa22e4235b82089ee3c111df393e 100644
--- a/remoting/zookeeper/listener.go
+++ b/remoting/zookeeper/listener.go
@@ -207,11 +207,13 @@ func (l *ZkEventListener) listenDirEvent(conf *common.URL, zkPath string, listen
 	)
 	event = make(chan struct{}, 4)
 	ttl = DefaultTTL
-	timeout, err := time.ParseDuration(conf.GetParam(constant.REGISTRY_TTL_KEY, constant.DEFAULT_REG_TTL))
-	if err == nil {
-		ttl = timeout
-	} else {
-		logger.Warnf("wrong configuration for registry ttl, error:=%+v", err)
+	if conf != nil {
+		timeout, err := time.ParseDuration(conf.GetParam(constant.REGISTRY_TTL_KEY, constant.DEFAULT_REG_TTL))
+		if err == nil {
+			ttl = timeout
+		} else {
+			logger.Warnf("wrong configuration for registry ttl, error:=%+v", err)
+		}
 	}
 	defer close(event)
 	for {