diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts
index 7e852d256ad74..5c21f1852f8c2 100644
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
@@ -111,6 +111,7 @@ export interface IGalleryExtensionProperties {
 export interface IGalleryExtensionAssets {
 	manifest: string;
 	readme: string;
+	changelog: string;
 	download: string;
 	icon: string;
 	iconFallback: string;
diff --git a/src/vs/platform/extensionManagement/node/extensionGalleryService.ts b/src/vs/platform/extensionManagement/node/extensionGalleryService.ts
index dc00fd2a01ea4..3242ff256f9d9 100644
--- a/src/vs/platform/extensionManagement/node/extensionGalleryService.ts
+++ b/src/vs/platform/extensionManagement/node/extensionGalleryService.ts
@@ -96,6 +96,7 @@ enum FilterType {
 const AssetType = {
 	Icon: 'Microsoft.VisualStudio.Services.Icons.Default',
 	Details: 'Microsoft.VisualStudio.Services.Content.Details',
+	Changelog: 'Microsoft.VisualStudio.Services.Content.Changelog',
 	Manifest: 'Microsoft.VisualStudio.Code.Manifest',
 	VSIX: 'Microsoft.VisualStudio.Services.VSIXPackage',
 	License: 'Microsoft.VisualStudio.Services.Content.License',
@@ -223,6 +224,7 @@ function toExtension(galleryExtension: IRawGalleryExtension, extensionsGalleryUr
 	const assets = {
 		manifest: getAssetSource(version.files, AssetType.Manifest),
 		readme: getAssetSource(version.files, AssetType.Details),
+		changelog: getAssetSource(version.files, AssetType.Changelog),
 		download: `${ getAssetSource(version.files, AssetType.VSIX) }?install=true`,
 		icon,
 		iconFallback,
diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts
index 209ed893f4e6d..b3c5485a751be 100644
--- a/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts
+++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts
@@ -96,7 +96,7 @@ class Extension implements IExtension {
 		return this.local ? this.local.manifest.description : this.gallery.description;
 	}
 
-	get readmeUrl(): string {
+	private get readmeUrl(): string {
 		if (this.local && this.local.readmeUrl) {
 			return this.local.readmeUrl;
 		}
@@ -104,12 +104,12 @@ class Extension implements IExtension {
 		return this.gallery && this.gallery.assets.readme;
 	}
 
-	get changelogUrl(): string {
+	private get changelogUrl(): string {
 		if (this.local && this.local.changelogUrl) {
 			return this.local.changelogUrl;
 		}
 
-		return ''; // Hopefully we will change this once the gallery will support that.
+		return this.gallery && this.gallery.assets.changelog;
 	}
 
 	get iconUrl(): string {
@@ -200,7 +200,7 @@ class Extension implements IExtension {
 	}
 
 	getReadme(): TPromise<string> {
-		const readmeUrl = this.local && this.local.readmeUrl ? this.local.readmeUrl : this.gallery && this.gallery.assets.readme;
+		const readmeUrl = this.readmeUrl;
 
 		if (!readmeUrl) {
 			return TPromise.wrapError('not available');
@@ -216,11 +216,11 @@ class Extension implements IExtension {
 	}
 
 	get hasChangelog() : boolean {
-		return !!(this.local && this.local.changelogUrl ? this.local.changelogUrl : '');
+		return !!(this.changelogUrl);
 	}
 
 	getChangelog() : TPromise<string> {
-		const changelogUrl = this.local && this.local.changelogUrl ? this.local.changelogUrl : '';
+		const changelogUrl = this.changelogUrl;
 
 		if (!changelogUrl) {
 			return TPromise.wrapError('not available');