diff --git a/js/NDN.js b/js/NDN.js
index 1202f08..05577b8 100644
--- a/js/NDN.js
+++ b/js/NDN.js
@@ -174,10 +174,10 @@
 	interest = new Interest(name);
     if (template != null) {
         // TODO: Exactly what do we copy from template?
-        interest.InterestLifetime = template.InterestLifetime;
+        interest.interestLifetime = template.interestLifetime;
     }
     else
-        interest.InterestLifetime = 4200;
+        interest.interestLifetime = 4200;
 	var outputHex = encodeToHexInterest(interest);
 		
 	var dataListener = {
@@ -196,8 +196,9 @@
 				}
 					
                 // TODO: verify the content object and set kind to UPCALL_CONTENT.
-				closure.upcall(Closure.UPCALL_CONTENT_UNVERIFIED,
-                   new UpcallInfo(this, interest, 0, co))
+				var result = closure.upcall(Closure.UPCALL_CONTENT_UNVERIFIED,
+                               new UpcallInfo(this, interest, 0, co));
+                // TODO: Check result for Closure.RESULT_OK, etc.          
 			}
 		}
 	}
diff --git a/js/ccnxProtocol.xpi b/js/ccnxProtocol.xpi
index 45cb47f..48091cb 100644
--- a/js/ccnxProtocol.xpi
+++ b/js/ccnxProtocol.xpi
Binary files differ
diff --git a/js/ccnxProtocol/components/ccnxProtocolService.js b/js/ccnxProtocol/components/ccnxProtocolService.js
index c7d4d1e..42dd1f6 100644
--- a/js/ccnxProtocol/components/ccnxProtocolService.js
+++ b/js/ccnxProtocol/components/ccnxProtocolService.js
@@ -47,7 +47,7 @@
                     if (!(kind == Closure.UPCALL_CONTENT ||
                           kind == Closure.UPCALL_CONTENT_UNVERIFIED))
                         // The upcall is not for us.
-                        return;
+                        return Closure.RESULT_ERR;
                         
                     var contentObject = upcallInfo.contentObject;
                         
@@ -84,6 +84,7 @@
 					}
 						
 					contentListener.onReceivedContent(content, contentType, contentCharset);
+                    return Closure.RESULT_OK;
 				};
 			
 				ndn.expressInterest(new Name(name), new ContentClosure());
diff --git a/js/ccnxProtocol/modules/ndn-js.jsm b/js/ccnxProtocol/modules/ndn-js.jsm
index a432819..1532ee5 100644
--- a/js/ccnxProtocol/modules/ndn-js.jsm
+++ b/js/ccnxProtocol/modules/ndn-js.jsm
@@ -264,10 +264,10 @@
 	interest = new Interest(name);
     if (template != null) {
         // TODO: Exactly what do we copy from template?
-        interest.InterestLifetime = template.InterestLifetime;
+        interest.interestLifetime = template.interestLifetime;
     }
     else
-        interest.InterestLifetime = 4200;
+        interest.interestLifetime = 4200;
 	var outputHex = encodeToHexInterest(interest);
 		
 	var dataListener = {
@@ -286,8 +286,9 @@
 				}
 					
                 // TODO: verify the content object and set kind to UPCALL_CONTENT.
-				closure.upcall(Closure.UPCALL_CONTENT_UNVERIFIED,
-                   new UpcallInfo(this, interest, 0, co))
+				var result = closure.upcall(Closure.UPCALL_CONTENT_UNVERIFIED,
+                               new UpcallInfo(this, interest, 0, co));
+                // TODO: Check result for Closure.RESULT_OK, etc.          
 			}
 		}
 	}
