diff --git a/include/asterisk/utils.h b/include/asterisk/utils.h
index c0cce98ae232203c5f953227667e1833d6ebf0d8..4dc406db7ff0df7d3fc5c7a162f9d82d4a05005b 100644
--- a/include/asterisk/utils.h
+++ b/include/asterisk/utils.h
@@ -786,10 +786,10 @@ char *ast_utils_which(const char *binary, char *fullpath, size_t fullpath_size);
 typedef void (^_raii_cleanup_block_t)(void);
 static inline void _raii_cleanup_block(_raii_cleanup_block_t *b) { (*b)(); }
 
-#define RAII_VAR(vartype, varname, initval, dtor)                                                                \
-    _raii_cleanup_block_t _raii_cleanup_ ## varname __attribute__((cleanup(_raii_cleanup_block),unused)) = NULL; \
-    __block vartype varname = initval;                                                                           \
-    _raii_cleanup_ ## varname = ^{ {(void)dtor(varname);} }
+#define RAII_VAR(vartype, varname, initval, dtor)                                                              \
+    __block vartype varname = initval;                                                                         \
+    _raii_cleanup_block_t _raii_cleanup_ ## varname __attribute__((cleanup(_raii_cleanup_block),unused)) =     \
+        ^{ {(void)dtor(varname);} };
 
 #elif defined(__GNUC__)