diff --git a/pjmedia/src/test/test.c b/pjmedia/src/test/test.c
index bd4e406..6d5b022 100644
--- a/pjmedia/src/test/test.c
+++ b/pjmedia/src/test/test.c
@@ -47,15 +47,21 @@
 {
     int rc = 0;
     pj_caching_pool caching_pool;
+    pj_pool_t *pool;
 
     pj_init();
     pj_caching_pool_init(&caching_pool, &pj_pool_factory_default_policy, 0);
-
+    pool = pj_pool_create(&caching_pool.factory, "test", 1000, 512, NULL);
+    
     pj_log_set_decor(PJ_LOG_HAS_NEWLINE);
     pj_log_set_level(3);
 
     mem = &caching_pool.factory;
 
+    pjmedia_video_format_mgr_create(pool, 64, 0, NULL);
+    pjmedia_converter_mgr_create(pool, NULL);
+    pjmedia_vid_codec_mgr_create(pool, NULL);
+
 #if HAS_VID_DEV_TEST
     DO_TEST(vid_dev_test());
 #endif
@@ -89,6 +95,11 @@
 	PJ_LOG(3,(THIS_FILE,"Looks like everything is okay!"));
     }
 
+    pjmedia_video_format_mgr_destroy(pjmedia_video_format_mgr_instance());
+    pjmedia_converter_mgr_destroy(pjmedia_converter_mgr_instance());
+    pjmedia_vid_codec_mgr_destroy(pjmedia_vid_codec_mgr_instance());
+    
+    pj_pool_release(pool);
     pj_caching_pool_destroy(&caching_pool);
 
     return rc;
