diff --git a/libasn1parser/asn1parser.c b/libasn1parser/asn1parser.c
index b5d9e1e..6a3477d 100644
--- a/libasn1parser/asn1parser.c
+++ b/libasn1parser/asn1parser.c
@@ -17,7 +17,7 @@
 extern int asn1p_lineno;
 
 static int _asn1p_set_flags(enum asn1p_flags flags);
-static int _asn1p_assign_filename(asn1p_t *a, const char *fname);
+static int _asn1p_fix_modules(asn1p_t *a, const char *fname);
 
 /*
  * Parse the given buffer.
@@ -52,7 +52,7 @@
 
 	if(ret == 0) {
 		assert(a);
-		if(_asn1p_assign_filename(a, "-"))
+		if(_asn1p_fix_modules(a, "-"))
 			return NULL;	/* FIXME: destroy (a) */
 	} else {
 		assert(a == NULL);
@@ -104,7 +104,7 @@
 
 	if(ret == 0) {
 		assert(a);
-		if(_asn1p_assign_filename(a, filename))
+		if(_asn1p_fix_modules(a, filename))
 			return NULL;	/* FIXME: destroy (a) */
 	} else {
 		assert(a == NULL);
@@ -159,13 +159,38 @@
 	return 0;
 }
 
+/*
+ * Perform last touches.
+ */
+static void
+_asn1p_apply_module2expr(asn1p_expr_t *expr, asn1p_module_t *mod) {
+	asn1p_expr_t *e;
+
+	expr->module = mod;	/* This is a useful thing */
+
+	/*
+	 * Do it to children also.
+	 */
+	TQ_FOR(e, &(expr->members), next) {
+		_asn1p_apply_module2expr(e, mod);
+	}
+}
+
 static int
-_asn1p_assign_filename(asn1p_t *a, const char *fname) {
+_asn1p_fix_modules(asn1p_t *a, const char *fname) {
 	asn1p_module_t *mod;
 	TQ_FOR(mod, &(a->modules), mod_next) {
+		asn1p_expr_t *expr;
+
 		mod->source_file_name = strdup(fname);
 		if(mod->source_file_name == NULL)
 			return -1;
+
+		TQ_FOR(expr, &(mod->members), next) {
+			_asn1p_apply_module2expr(expr, mod);
+		}
 	}
 	return 0;
 }
+
+
