diff --git a/src/bc/num.c b/src/bc/num.c
index 7659916..4f18de4 100644
--- a/src/bc/num.c
+++ b/src/bc/num.c
@@ -139,6 +139,30 @@
   memset(num, 0, sizeof(BcNum));
 }
 
+BcStatus bc_num_copy(BcNum* dest, BcNum* src) {
+
+  BcStatus status;
+  BcNum* d;
+  BcNum* s;
+
+  d = (BcNum*) dest;
+  s = (BcNum*) src;
+
+  if (!d || !s || d == s) return BC_STATUS_INVALID_PARAM;
+
+  status = bc_num_expand(d, s->len + s->unused);
+
+  if (status) return status;
+
+  d->len = s->len;
+  d->neg = s->neg;
+  d->radix = s->radix;
+
+  memcpy(d->num, s->num, sizeof(char) * d->len);
+
+  return BC_STATUS_SUCCESS;
+}
+
 BcStatus bc_num_parse(BcNum* num, const char* val,
                       size_t base, size_t scale)
 {
@@ -164,30 +188,6 @@
   return status;
 }
 
-BcStatus bc_num_copy(BcNum* dest, BcNum* src) {
-
-  BcStatus status;
-  BcNum* d;
-  BcNum* s;
-
-  d = (BcNum*) dest;
-  s = (BcNum*) src;
-
-  if (!d || !s || d == s) return BC_STATUS_INVALID_PARAM;
-
-  status = bc_num_expand(d, s->len + s->unused);
-
-  if (status) return status;
-
-  d->len = s->len;
-  d->neg = s->neg;
-  d->radix = s->radix;
-
-  memcpy(d->num, s->num, sizeof(char) * d->len);
-
-  return BC_STATUS_SUCCESS;
-}
-
 BcStatus bc_num_print(BcNum* num, size_t base) {
   return bc_num_fprint(num, base, stdout);
 }
