+/****f* silcutil/SilcMemoryAPI/silc_memdup
+ *
+ * SYNOPSIS
+ *
+ * void *silc_memdup(const void *ptr, size_t size);
+ *
+ * DESCRIPTION
+ *
+ * Duplicates the memory area indicated by `ptr' which is of size
+ * of `size' bytes. Returns pointer to the duplicated memory area.
+ * This NULL terminates the dupped memory area by allocating `size' + 1
+ * bytes, so this function can be used to duplicate strings that does
+ * not have NULL termination.
+ *
+ ***/
+void *silc_memdup(const void *ptr, size_t size);
+
+#else
+#ifndef SILC_DIST_TOOLKIT
+#error "The stack trace is not supported in this distribution"
+#endif /* SILC_DIST_TOOLKIT */
+
+#include "stacktrace.h"
+#endif /* SILC_STACKTRACE */
+
+#endif /* SILCMEMORY_H */