diff --git a/js/ndnProtocol/content/ndnToolbar.js b/js/ndnProtocol/content/ndnToolbar.js
index 078c7ad..3d000f3 100644
--- a/js/ndnProtocol/content/ndnToolbar.js
+++ b/js/ndnProtocol/content/ndnToolbar.js
@@ -1,6 +1,7 @@
 Components.utils.import("chrome://modules/content/ndn-js.jsm");
+Components.utils.import("chrome://modules/content/NdnProtocolInfo.jsm");
 
-function ndnToolbarGetLatest(event){
+function ndnToolbarGetLatest(event) {
   if (window._content.document.location.protocol != "ndn:") {
     alert("The address must start with ndn:");
     return;
@@ -31,7 +32,9 @@
   window._content.document.location = uri;
 } 
 
-// Return the index of the last component that starts with 0xfd, or -1 if not found.
+/*
+ * Return the index of the last component that starts with 0xfd, or -1 if not found.
+ */
 function getIndexOfVersion(name) {
   for (var i = name.components.length - 1; i >= 0; --i) {
     if (name.components[i].length >= 1 && name.components[i][0] == 0xfd)
@@ -40,3 +43,13 @@
 
   return -1;
 }
+
+/*
+ * This is called when the connected NDN hub changes.
+ */
+function onNdnHubChanged(host, port) {
+   document.getElementById("ndnHubLabel").setAttribute("value", "Hub: " + host + ":" + port);
+}
+
+// Assume that addNdnHubChangedListener is defined since we imported NdnProtocolInfo.jsm above.
+addNdnHubChangedListener(onNdnHubChanged);
diff --git a/js/ndnProtocol/content/toolbar.xul b/js/ndnProtocol/content/toolbar.xul
index 0210be9..1e53a60 100644
--- a/js/ndnProtocol/content/toolbar.xul
+++ b/js/ndnProtocol/content/toolbar.xul
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>                 
-<overlay id="Scrapper-Overlay"
+<overlay id="NDN-Toolbar-Overlay"
 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 
 <script type="application/x-javascript" src="chrome://toolbar/content/ndnToolbar.js" />
@@ -8,7 +8,8 @@
   <toolbar id="NdnToolbar" toolbarname="ndnToolbar" >
       <label value="NDN"/>
       <toolbarbutton id="ndnToolbarGetLatestButton"
-        label="Get Latest" oncommand="ndnToolbarGetLatest(event)" />
+        label="Get Latest" oncommand="ndnToolbarGetLatest(event)"/>
+      <label id="ndnHubLabel" value="Hub: not connected"/>
   </toolbar>
 </toolbox>
 
