diff --git a/bsd/porting/uma_stub.c b/bsd/porting/uma_stub.c
index 63575d6da2c25d9468477210b0ec760769623ad1..5480d97720147613d771c68cd6fa4ffa827f4a77 100644
--- a/bsd/porting/uma_stub.c
+++ b/bsd/porting/uma_stub.c
@@ -46,14 +46,14 @@ void uma_zfree_arg(uma_zone_t zone, void *item, void *udata)
         return;
     }
 
-    if (zone->uz_fini) {
-        zone->uz_fini(item, zone->uz_size);
-    }
-
     if (zone->uz_dtor) {
         zone->uz_dtor(item, zone->uz_size, udata);
     }
 
+    if (zone->uz_fini) {
+        zone->uz_fini(item, zone->uz_size);
+    }
+
     free(item);
 }