diff --git a/lib/Models/ArcGisMapServerCatalogItem.js b/lib/Models/ArcGisMapServerCatalogItem.js
index <HASH>..<HASH> 100644
--- a/lib/Models/ArcGisMapServerCatalogItem.js
+++ b/lib/Models/ArcGisMapServerCatalogItem.js
@@ -252,7 +252,12 @@ ArcGisMapServerCatalogItem.prototype._load = function() {
             this.layers = layers; // ## is this ok to do?
         }
 
-        function requestMetadata(token) {
+        var promise = when();
+        if (this.tokenSource) {
+            promise = getToken(this);
+        }
+
+        return promise.then(function (token) {
             var serviceUri = getBaseURI(that);
             var layersUri = getBaseURI(that).segment(layers); // either 'layers' or a number
             var legendUri = getBaseURI(that).segment('legend');
@@ -283,15 +288,7 @@ sending an email to <a href="mailto:' + that.terria.supportEmail + '">' + that.t
                     });
                 }
             });
-        }
-
-        if (this.tokenSource) {
-            return getToken(this).then(function (token) {
-                return requestMetadata (token);
-            });
-        } else {
-            return requestMetadata();
-        }
+        });
     }
 };
[#<I>] ArcGisMapServerCatalogItem: Refactor to remove lint and simplify the expression.