diff --git a/main/image.c b/main/image.c
index 91cdebaebdf4b504c4e7e5313680fa1ee78b8c35..f160cebffbd2afa9bdd77943705adfdfd59d7171 100644
--- a/main/image.c
+++ b/main/image.c
@@ -51,27 +51,20 @@ static AST_RWLIST_HEAD_STATIC(imagers, ast_imager);
 
 int ast_image_register(struct ast_imager *img)
 {
-	ast_verb(2, "Registered format '%s' (%s)\n", img->name, img->desc);
 	AST_RWLIST_WRLOCK(&imagers);
 	AST_RWLIST_INSERT_HEAD(&imagers, img, list);
 	AST_RWLIST_UNLOCK(&imagers);
+	ast_verb(2, "Registered format '%s' (%s)\n", img->name, img->desc);
 	return 0;
 }
 
 void ast_image_unregister(struct ast_imager *img)
 {
-	struct ast_imager *i;
-	
 	AST_RWLIST_WRLOCK(&imagers);
-	AST_RWLIST_TRAVERSE_SAFE_BEGIN(&imagers, i, list) {	
-		if (i == img) {
-			AST_RWLIST_REMOVE_CURRENT(list);
-			break;
-		}
-	}
-	AST_RWLIST_TRAVERSE_SAFE_END;
+	img = AST_RWLIST_REMOVE(&imagers, img, list);
 	AST_RWLIST_UNLOCK(&imagers);
-	if (i)
+
+	if (img)
 		ast_verb(2, "Unregistered format '%s' (%s)\n", img->name, img->desc);
 }
 
@@ -216,6 +209,6 @@ struct ast_cli_entry cli_image[] = {
 
 int ast_image_init(void)
 {
-	ast_cli_register_multiple(cli_image, sizeof(cli_image) / sizeof(struct ast_cli_entry));
+	ast_cli_register_multiple(cli_image, ARRAY_LEN(cli_image));
 	return 0;
 }