diff --git a/libasn1fix/asn1fix.c b/libasn1fix/asn1fix.c
index 2b48ce8..f5489ed 100644
--- a/libasn1fix/asn1fix.c
+++ b/libasn1fix/asn1fix.c
@@ -27,6 +27,7 @@
 	arg_t arg;
 	int fatals = 0;
 	int warnings = 0;
+	int ret;
 
 	/*
 	 * Check validity of arguments.
@@ -78,7 +79,7 @@
 	 * PHASE I.
 	 */
 	TQ_FOR(arg.mod, &(asn->modules), mod_next) {
-		int ret = asn1f_fix_module__phase_1(&arg);
+		ret = asn1f_fix_module__phase_1(&arg);
 		/*
 		 * These lines are used for illustration purposes.
 		 * RET2RVAL() is used everywhere else.
@@ -88,7 +89,7 @@
 	}
 	/* PHASE II. */
 	TQ_FOR(arg.mod, &(asn->modules), mod_next) {
-		int ret = asn1f_fix_module__phase_2(&arg);
+		ret = asn1f_fix_module__phase_2(&arg);
 		if(ret == -1) fatals++;
 		if(ret == 1) warnings++;
 	}
@@ -109,6 +110,38 @@
 	asn1p_expr_t *expr;
 	int rvalue = 0;
 	int ret;
+	asn1p_module_t *omod;
+
+	/*
+	 * Check that we don't have a similarly named module.
+	 */
+	TQ_FOR(omod, &arg->asn->modules, mod_next) {
+		int sameNames;
+		if(omod == arg->mod) break;
+		sameNames = strcmp(omod->Identifier, arg->mod->Identifier)?0:1;
+		if(omod->module_oid && arg->mod->module_oid) {
+			/* Compare only the OID. */
+			if(asn1p_oid_compare(omod->module_oid,
+					arg->mod->module_oid) == 0) {
+				FATAL("ASN.1 module %s from %s "
+					"has the same OBJECT IDENTIFIER"
+					" as module %s from %s",
+					arg->mod->Identifier,
+					arg->mod->source_file_name,
+					omod->Identifier,
+					omod->source_file_name
+				);
+				RET2RVAL(-1, rvalue);
+			} else if(sameNames) {
+				WARNING("ASN.1 module %s is defined more than once, with different OIDs", omod->Identifier);
+				RET2RVAL(1, rvalue);
+			}
+		} else if(sameNames) {
+			FATAL("ASN.1 module %s is defined more than once",
+				omod->Identifier);
+			RET2RVAL(-1, rvalue);
+		}
+	}
 
 	switch((arg->mod->module_flags & MSF_MASK_TAGS)) {
 	case MSF_NOFLAGS:
