context CHANGE do not call free on clb module data by default
diff --git a/src/context.c b/src/context.c
index 12ff91c..b0e61f9 100644
--- a/src/context.c
+++ b/src/context.c
@@ -294,8 +294,6 @@
         module = lys_parse_mem(ctx, module_data, format);
         if (module_data_free) {
             module_data_free(module_data);
-        } else {
-            free(module_data);
         }
     } else {
         module = lyp_search_file(ctx, NULL, name, revision, NULL);
diff --git a/src/libyang.h b/src/libyang.h
index f862734..8a4e019 100644
--- a/src/libyang.h
+++ b/src/libyang.h
@@ -621,7 +621,7 @@
  * @param[in] revision Optional missing module revision.
  * @param[in] user_data User-supplied callback data.
  * @param[out] format Format of the returned module data.
- * @param[out] free_module_data Optional callback for freeing the returned module data. If not set, free() is used.
+ * @param[out] free_module_data Callback for freeing the returned module data. If not set, the data will be left untouched.
  * @return Requested module data or NULL on error.
  */
 typedef char *(*ly_module_clb)(const char *name, const char *revision, void *user_data, LYS_INFORMAT *format,