diff --git a/js/tools/build/ndn-js-uncomp.js b/js/tools/build/ndn-js-uncomp.js
index 0a291f1..9ce8d3e 100644
--- a/js/tools/build/ndn-js-uncomp.js
+++ b/js/tools/build/ndn-js-uncomp.js
@@ -382,8 +382,7 @@
 				}
 				
 			} else if (decoder.peekStartElement(CCNProtocolDTags.ContentObject)) {  // Content packet
-				//if (LOG > 3) 
-				console.log('ContentObject packet received.');
+				if (LOG > 3) console.log('ContentObject packet received.');
 				
 				var co = new ContentObject();
 				co.from_ccnb(decoder);
@@ -446,7 +445,7 @@
 							} else if (kind == Closure.UPCALL_CONTENT) {
 								console.log("In KeyFetchClosure.upcall: signature verification passed");
 								var keyHex = DataUtils.toHex(upcallInfo.contentObject.content).toLowerCase();
-								console.log("Key: " + keyHex);
+								//console.log("Key: " + keyHex);
 								
 								var kp = keyHex.slice(56, 314);
 								var exp = keyHex.slice(318, 324);
@@ -456,8 +455,12 @@
 								var verified = rsakey.verifyByteArray(this.contentObject.rawSignatureData, this.signature);
 								var flag = (verified == true) ? Closure.UPCALL_CONTENT : Closure.UPCALL_CONTENT_BAD;
 								
-								console.log("raise encapsulated closure");
+								//console.log("raise encapsulated closure");
 								this.closure.upcall(flag, new UpcallInfo(ndn, null, 0, this.contentObject));
+								
+								// Store key in cache
+								var keyEntry = new KeyStoreEntry(keylocator.keyName, keyHex, rsakey);
+								NDN.KeyStore.push(keyEntry);
 							}
 						};
 						
@@ -486,10 +489,6 @@
 									var flag = (verified == true) ? Closure.UPCALL_CONTENT : Closure.UPCALL_CONTENT_BAD;
 									
 									currentClosure.upcall(flag, new UpcallInfo(ndn, null, 0, co));
-									
-									// Store key in cache
-									var keyEntry = new KeyStoreEntry(keylocator.keyName, keyHex, rsakey);
-									NDN.KeyStore.push(keyEntry);
 								} else {
 									console.log("Fetch key according to keylocator");
 									
@@ -2183,10 +2182,8 @@
  * KeyName is only used by KeyLocator.
  */
 var KeyName = function KeyName() {
-	
-
-	this.contentName = this.contentName;//contentName
-	this.publisherID =this.publisherID;//publisherID
+	this.contentName = this.contentName;  //contentName
+	this.publisherID = this.publisherID;  //publisherID
 
 };
 
