diff -Naur opendnssec-1.4.0b1-orig/signer/src/signer/rrset.c opendnssec-1.4.0b1/signer/src/signer/rrset.c
--- opendnssec-1.4.0b1-orig/signer/src/signer/rrset.c 2012-08-28 10:00:54.000000000 -0400
+++ opendnssec-1.4.0b1/signer/src/signer/rrset.c 2012-11-10 17:16:44.250226281 -0500
@@ -32,6 +32,7 @@
*/
#include "config.h"
+#include "shared/file.h"
#include "shared/hsm.h"
#include "shared/log.h"
#include "shared/util.h"
@@ -557,6 +558,26 @@
/**
+ * Is the RRset signed with this locator?
+ *
+ */
+static int
+rrset_siglocator(rrset_type* rrset, const char* locator)
+{
+ size_t i = 0;
+ if (!rrset) {
+ return 0;
+ }
+ for (i=0; i < rrset->rrsig_count; i++) {
+ if (!ods_strcmp(locator, rrset->rrsigs[i].key_locator)) {
+ return 1;
+ }
+ }
+ return 0;
+}
+
+
+/**
* Transmogrify the RRset to a RRlist.
*
*/
@@ -702,6 +723,9 @@
continue;
}
/* Additional rules for signatures */
+ if (rrset_siglocator(rrset, zone->signconf->keys->keys[i].locator)) {
+ continue;
+ }
if (rrset_sigalgo(rrset, zone->signconf->keys->keys[i].algorithm)) {
continue;
}