diff --git a/examples/docs/abstract.schema.md b/examples/docs/abstract.schema.md
index be4054cf44fe290d9d0c409a520afebd5592ea6b..5fb46d7b3382936e2184cbd349ba744b3659bae9 100644
--- a/examples/docs/abstract.schema.md
+++ b/examples/docs/abstract.schema.md
@@ -19,8 +19,8 @@ This is an abstract schema. It has `definitions`, but does not declare any prope
 
 | Property | Type | Group |
 |----------|------|-------|
-| [bar](#bar) | `string` | `#/definitions/second` |
-| [foo](#foo) | `string` | `#/definitions/first` |
+| [bar](#bar) | `string` | `https://example.com/schemas/abstract#/definitions/second` |
+| [foo](#foo) | `string` | `https://example.com/schemas/abstract#/definitions/first` |
 
 ## bar
 
diff --git a/examples/docs/extensible.schema.md b/examples/docs/extensible.schema.md
index 4a79bbfc702de9faf80bcd6d828d6bb693a547ba..d0f9c80ce4132cde0a7005df35d418922613393e 100644
--- a/examples/docs/extensible.schema.md
+++ b/examples/docs/extensible.schema.md
@@ -19,8 +19,8 @@ This is an extensible schema. It has `definitions`, that can be used in other sc
 
 | Property | Type | Group |
 |----------|------|-------|
-| [bar](#bar) | `string` | `#/definitions/second` |
-| [foo](#foo) | `string` | `#/definitions/first` |
+| [bar](#bar) | `string` | `https://example.com/schemas/extensible#/definitions/second` |
+| [foo](#foo) | `string` | `https://example.com/schemas/extensible#/definitions/first` |
 
 ## bar
 
diff --git a/examples/docs/subdir/subdir.schema.md b/examples/docs/subdir/subdir.schema.md
index 53dfc8c9b434d9acd655aa59e307bd532ce25286..5e236c39600ee4d2d57c83fa656f1a2b1c2a3934 100644
--- a/examples/docs/subdir/subdir.schema.md
+++ b/examples/docs/subdir/subdir.schema.md
@@ -19,7 +19,7 @@ A schema in a sub directory
 
 | Property | Type | Group |
 |----------|------|-------|
-| [id](#id) | `string` | `#/definitions/content` |
+| [id](#id) | `string` | `https://example.com/schemas/subdir/subdir#/definitions/content` |
 
 ## id
 
diff --git a/lib/markdownWriter.js b/lib/markdownWriter.js
index 00ba80de824d389d7b557de25c51223da82f696e..8cd6a39eda5dc02f522f051843fea878f147b33f 100644
--- a/lib/markdownWriter.js
+++ b/lib/markdownWriter.js
@@ -202,7 +202,10 @@ const generateMarkdown = function(filename, schema, schemaPath, outDir, dependen
     }
     if (_.keys(abstract).length>0) {
       //console.log('I got definitions!', abstract);
-      multi.push([ 'definitions.ejs', { props: requiredProperties(abstract), title: schema.title } ]);
+      multi.push([ 'definitions.ejs', {
+        props: requiredProperties(abstract),
+        title: schema.title,
+        id: schema.$id } ]);
       for (let i=0; i<_.keys(abstract).length;i++) {
         const name = _.keys(abstract).sort()[i];
         multi.push( [ 'property.ejs', {
diff --git a/templates/md/definitions.ejs b/templates/md/definitions.ejs
index 825051ddb384fa9f7917ff433886d99c7c8282a0..0c5f6b5957523503a055d050d8a9e3cc0a326d25 100644
--- a/templates/md/definitions.ejs
+++ b/templates/md/definitions.ejs
@@ -12,5 +12,5 @@
 |----------|------|-------|
 <% _.keys(props).sort().forEach(property => {
   const schema = props[property]; %>
-| [<%= property %>](#<%= property %>) | <%= schema.simpletype %> | `#/definitions/<%= schema.definitiongroup %>` |
+| [<%= property %>](#<%= property %>) | <%= schema.simpletype %> | `<%= id%>#/definitions/<%= schema.definitiongroup %>` |
 <% }); %>
\ No newline at end of file