diff --git a/bgpd/bgp_damp.c b/bgpd/bgp_damp.c
index 5a7c9aa..ba25f4d 100644
--- a/bgpd/bgp_damp.c
+++ b/bgpd/bgp_damp.c
@@ -517,33 +517,28 @@
   return 0;
 }
 
-int
+void
 bgp_config_write_damp (struct vty *vty)
 {
-  if (&bgp_damp_cfg)
-    {
-      if (bgp_damp_cfg.half_life == DEFAULT_HALF_LIFE*60
-	  && bgp_damp_cfg.reuse_limit == DEFAULT_REUSE
-	  && bgp_damp_cfg.suppress_value == DEFAULT_SUPPRESS
-	  && bgp_damp_cfg.max_suppress_time == bgp_damp_cfg.half_life*4)
-	vty_out (vty, " bgp dampening%s", VTY_NEWLINE);
-      else if (bgp_damp_cfg.half_life != DEFAULT_HALF_LIFE*60
-	       && bgp_damp_cfg.reuse_limit == DEFAULT_REUSE
-	       && bgp_damp_cfg.suppress_value == DEFAULT_SUPPRESS
-	       && bgp_damp_cfg.max_suppress_time == bgp_damp_cfg.half_life*4)
-	vty_out (vty, " bgp dampening %ld%s",
-		 bgp_damp_cfg.half_life/60,
-		 VTY_NEWLINE);
-      else
-	vty_out (vty, " bgp dampening %ld %d %d %ld%s",
-		 bgp_damp_cfg.half_life/60,
-		 bgp_damp_cfg.reuse_limit,
-		 bgp_damp_cfg.suppress_value,
-		 bgp_damp_cfg.max_suppress_time/60,
-		 VTY_NEWLINE);
-      return 1;
-    }
-  return 0;
+  if (bgp_damp_cfg.half_life == DEFAULT_HALF_LIFE*60
+      && bgp_damp_cfg.reuse_limit == DEFAULT_REUSE
+      && bgp_damp_cfg.suppress_value == DEFAULT_SUPPRESS
+      && bgp_damp_cfg.max_suppress_time == bgp_damp_cfg.half_life*4)
+    vty_out (vty, " bgp dampening%s", VTY_NEWLINE);
+  else if (bgp_damp_cfg.half_life != DEFAULT_HALF_LIFE*60
+	   && bgp_damp_cfg.reuse_limit == DEFAULT_REUSE
+	   && bgp_damp_cfg.suppress_value == DEFAULT_SUPPRESS
+	   && bgp_damp_cfg.max_suppress_time == bgp_damp_cfg.half_life*4)
+    vty_out (vty, " bgp dampening %ld%s",
+	     bgp_damp_cfg.half_life/60,
+	     VTY_NEWLINE);
+  else
+    vty_out (vty, " bgp dampening %ld %d %d %ld%s",
+	     bgp_damp_cfg.half_life/60,
+	     bgp_damp_cfg.reuse_limit,
+	     bgp_damp_cfg.suppress_value,
+	     bgp_damp_cfg.max_suppress_time/60,
+	     VTY_NEWLINE);
 }
 
 #define BGP_UPTIME_LEN 25
diff --git a/bgpd/bgp_damp.h b/bgpd/bgp_damp.h
index 37ed90b..17c31cb 100644
--- a/bgpd/bgp_damp.h
+++ b/bgpd/bgp_damp.h
@@ -140,7 +140,7 @@
 extern void bgp_damp_info_clean (void);
 extern char * bgp_get_reuse_time (unsigned int, char*, size_t);
 extern int bgp_damp_decay (time_t, int);
-extern int bgp_config_write_damp (struct vty *);
+extern void bgp_config_write_damp (struct vty *);
 extern void bgp_damp_info_vty (struct vty *, struct bgp_info *);
 extern char * bgp_damp_reuse_time_vty (struct vty *, struct bgp_info *);
 
