diff --git a/src/vnet/fib/fib_attached_export.c b/src/vnet/fib/fib_attached_export.c
index a0f4e4e..3c9c2bf 100644
--- a/src/vnet/fib/fib_attached_export.c
+++ b/src/vnet/fib/fib_attached_export.c
@@ -152,7 +152,7 @@
 		      fib_node_index_t entry_index)
 {
     fib_node_index_t *existing;
-    const fib_prefix_t *prefix;
+    fib_prefix_t prefix;
 
     /*
      * ensure we only add the exported entry once, since
@@ -168,15 +168,15 @@
 
     /*
      * this is the first time this export entry has been imported
-     * Add it to the import FIB and to the list of importeds
+     * Add it to the import FIB and to the list of importeds.
+     * make a copy of the prefix in case the underlying entry reallocs.
      */
-    prefix = fib_entry_get_prefix(entry_index);
+    fib_prefix_copy(&prefix, fib_entry_get_prefix(entry_index));
 
     /*
      * don't import entries that have the same prefix the import entry
      */
-    if (0 != fib_prefix_cmp(prefix,
-			    &import->faei_prefix))
+    if (0 != fib_prefix_cmp(&prefix, &import->faei_prefix))
     {
         const dpo_id_t *dpo;
 
@@ -185,7 +185,7 @@
         if (dpo_id_is_valid(dpo) && !dpo_is_drop(dpo))
         {
             fib_table_entry_special_dpo_add(import->faei_import_fib,
-                                            prefix,
+                                            &prefix,
                                             FIB_SOURCE_AE,
                                             (fib_entry_get_flags(entry_index) |
                                              FIB_ENTRY_FLAG_EXCLUSIVE),
diff --git a/src/vnet/fib/fib_types.c b/src/vnet/fib/fib_types.c
index 7b07fa9..3ac5c1d 100644
--- a/src/vnet/fib/fib_types.c
+++ b/src/vnet/fib/fib_types.c
@@ -102,6 +102,13 @@
     pfx->fp_eos = eos;
 }
 
+void
+fib_prefix_copy (fib_prefix_t *dst,
+                 const fib_prefix_t *src)
+{
+    memcpy(dst, src, sizeof(*dst));
+}
+
 int
 fib_prefix_cmp (const fib_prefix_t *p1,
 		const fib_prefix_t *p2)
diff --git a/src/vnet/fib/fib_types.h b/src/vnet/fib/fib_types.h
index 91d1d7b..11e5bf4 100644
--- a/src/vnet/fib/fib_types.h
+++ b/src/vnet/fib/fib_types.h
@@ -248,6 +248,12 @@
 			  const fib_prefix_t *p2);
 
 /**
+ * \brief Copy a prefix
+ */
+extern void fib_prefix_copy(fib_prefix_t *dst,
+                            const fib_prefix_t *src);
+
+/**
  * \brief Compare two prefixes for covering relationship
  *
  * \return non-zero if the first prefix is a cover for the second
