diff --git a/modules/memcached/mcd_var.c b/modules/memcached/mcd_var.c
index b24888d..b696b57 100644
--- a/modules/memcached/mcd_var.c
+++ b/modules/memcached/mcd_var.c
@@ -220,6 +220,11 @@ int pv_get_mcd_value(struct sip_msg *msg, pv_param_t *param, pv_value_t *res) {
 		res->flags = PV_VAL_STR|PV_VAL_INT|PV_TYPE_INT;
 	}
 
+	if (mcd_memory) {
+	        pkg_free(return_value);  
+	} else {
+		free(return_value);
+	}
 	return 0;
 
 errout:
