diff --git a/bgpd/ChangeLog b/bgpd/ChangeLog
index ece8c4b..b555334 100644
--- a/bgpd/ChangeLog
+++ b/bgpd/ChangeLog
@@ -7,6 +7,10 @@
 	  (aspath_parse) aspath_hash_alloc dupes the entire aspath,
 	  including segments, but we forgot to free the temporary
 	  assegment.
+	  (aspath_snmp_pathseg) move the static stream pointer out to
+	  file scope, so it can be freed.
+	  (aspath_finish) new function, free aspath resources.
+	* bgp_aspath.h: (aspath_finish) export.
 
 2006-01-10 Juris Kalnins <juris@mt.lv>
 
diff --git a/bgpd/bgp_aspath.c b/bgpd/bgp_aspath.c
index a6b77bb..e9a6d6a 100644
--- a/bgpd/bgp_aspath.c
+++ b/bgpd/bgp_aspath.c
@@ -78,6 +78,9 @@
 
 /* Hash for aspath.  This is the top level structure of AS path. */
 struct hash *ashash;
+
+/* Stream for SNMP. See aspath_snmp_pathseg */
+static struct stream *snmp_stream;
 
 static inline as_t *
 assegment_data_new (int num)
@@ -769,22 +772,21 @@
 aspath_snmp_pathseg (struct aspath *as, size_t *varlen)
 {
 #define SNMP_PATHSEG_MAX 1024
-  static struct stream *s = NULL;
-  
-  if (!s)
-    s = stream_new (SNMP_PATHSEG_MAX);
+
+  if (!snmp_stream)
+    snmp_stream = stream_new (SNMP_PATHSEG_MAX);
   else
-    stream_reset (s);
+    stream_reset (snmp_stream);
   
   if (!as)
     {
       *varlen = 0;
       return NULL;
     }
-  aspath_put (s, as);
+  aspath_put (snmp_stream, as);
   
-  *varlen = stream_get_endp (s);
-  return stream_pnt(s);
+  *varlen = stream_get_endp (snmp_stream);
+  return stream_pnt(snmp_stream);
 }
       
 #define min(A,B) ((A) < (B) ? (A) : (B))
@@ -1488,6 +1490,15 @@
 {
   ashash = hash_create_size (32767, aspath_key_make, aspath_cmp);
 }
+
+void
+aspath_finish (void)
+{
+  hash_free (ashash);
+  
+  if (snmp_stream)
+    stream_free (snmp_stream);
+}
 
 /* return and as path value */
 const char *
diff --git a/bgpd/bgp_aspath.h b/bgpd/bgp_aspath.h
index adf5851..7fa7f20 100644
--- a/bgpd/bgp_aspath.h
+++ b/bgpd/bgp_aspath.h
@@ -60,6 +60,7 @@
 
 /* Prototypes. */
 extern void aspath_init (void);
+extern void aspath_finish (void);
 extern struct aspath *aspath_parse (struct stream *, size_t);
 extern struct aspath *aspath_dup (struct aspath *);
 extern struct aspath *aspath_aggregate (struct aspath *, struct aspath *);
