JP context killer.
 #define __GLITE_JP_CONTEXT
 
 int glite_jp_init_context(glite_jp_context_t *);
+void glite_jp_free_context(glite_jp_context_t);
 void glite_jp_free_query_rec(glite_jp_query_rec_t *);
 
 char *glite_jp_peer_name(glite_jp_context_t);
 
        void    **cp = ctx->type_plugins;
        char    *colon,*ns;
 
-       assert(cp);
+       if (!cp) return &fallback_plugin;
        glite_jp_clear_error(ctx);
        ns = strdup(aname);
        colon = strrchr(ns,':');
 
 
 int glite_jp_init_context(glite_jp_context_t *ctx)
 {
-       *ctx = calloc(1,sizeof **ctx);
+       return (*ctx = calloc(1,sizeof **ctx)) != NULL;
+}
+
+void glite_jp_free_context(glite_jp_context_t ctx)
+{
+       glite_jp_clear_error(ctx);
+       free(ctx);
 }
 
 char *glite_jp_peer_name(glite_jp_context_t ctx)