diff --git a/dbutil.c b/dbutil.c
index 044388aee345297ea0962f57c6d74ecdb68ce250..f2fe5b9d09feb2133757bd0e5fc54e1813987443 100644
--- a/dbutil.c
+++ b/dbutil.c
@@ -651,6 +651,14 @@ void printhex(const char * label, const unsigned char * buf, int len) {
 	}
 	fprintf(stderr, "\n");
 }
+
+void printmpint(const char *label, mp_int *mp) {
+	buffer *buf = buf_new(1000);
+	buf_putmpint(buf, mp);
+	printhex(label, buf->data, buf->len);
+	buf_free(buf);
+
+}
 #endif
 
 /* Strip all control characters from text (a null-terminated string), except
diff --git a/dbutil.h b/dbutil.h
index 0f16bf3c162d4c3a6b1164f2bfa29291866ba9be..5be34655d5bb9b99031d4d3109d33462720cebac 100644
--- a/dbutil.h
+++ b/dbutil.h
@@ -58,6 +58,7 @@ void fail_assert(const char* expr, const char* file, int line) ATTRIB_NORETURN;
 #ifdef DEBUG_TRACE
 void dropbear_trace(const char* format, ...) ATTRIB_PRINTF(1,2);
 void printhex(const char * label, const unsigned char * buf, int len);
+void printmpint(const char *label, mp_int *mp);
 extern int debug_trace;
 #endif