| Index: utils/pub/hosted_source.dart
 | 
| diff --git a/utils/pub/hosted_source.dart b/utils/pub/hosted_source.dart
 | 
| index 5e48153260e195d4206ea1c48b11a65d650c5729..5a62882a4399b317ab58a59ff63c4db76d8815f5 100644
 | 
| --- a/utils/pub/hosted_source.dart
 | 
| +++ b/utils/pub/hosted_source.dart
 | 
| @@ -56,9 +56,8 @@ class HostedSource extends Source {
 | 
|      var parsed = _parseDescription(id.description);
 | 
|      var fullUrl = "${parsed.last}/packages/${parsed.first}/versions/"
 | 
|        "${id.version}.yaml";
 | 
| -    return consumeInputStream(httpGet(fullUrl)).transform((data) {
 | 
| -      return new Pubspec.parse(
 | 
| -          new String.fromCharCodes(data), systemCache.sources);
 | 
| +    return httpGetString(fullUrl).transform((yaml) {
 | 
| +      return new Pubspec.parse(yaml, systemCache.sources);
 | 
|      });
 | 
|    }
 | 
|  
 | 
| @@ -70,9 +69,10 @@ class HostedSource extends Source {
 | 
|      var name = parsedDescription.first;
 | 
|      var url = parsedDescription.last;
 | 
|  
 | 
| -    return ensureDir(destPath).chain((destDir) {
 | 
| -      var fullUrl = "$url/packages/$name/versions/${id.version}.tar.gz";
 | 
| -      return extractTarGz(httpGet(fullUrl), destDir);
 | 
| +    var fullUrl = "$url/packages/$name/versions/${id.version}.tar.gz";
 | 
| +    return Futures.wait([httpGet(fullUrl), ensureDir(destPath)]).chain((args) {
 | 
| +      return future(extractTarGz(args[0], args[1]), HTTP_TIMEOUT,
 | 
| +          'Timed out while fetching URL "$fullUrl".');
 | 
|      });
 | 
|    }
 | 
|  
 | 
| 
 |