Fixed ImageLinkSyntax Resolver
diff --git a/pkgs/markdown/lib/src/document.dart b/pkgs/markdown/lib/src/document.dart
index 7ed01ca..4724208 100644
--- a/pkgs/markdown/lib/src/document.dart
+++ b/pkgs/markdown/lib/src/document.dart
@@ -9,8 +9,9 @@
   final Map<String, Link> refLinks;
   List<InlineSyntax> inlineSyntaxes;
   Resolver linkResolver;
+  Resolver imageLinkResolver;
 
-  Document({this.inlineSyntaxes, this.linkResolver})
+  Document({this.inlineSyntaxes, this.linkResolver, this.imageLinkResolver})
     : refLinks = <String, Link>{};
 
   parseRefLinks(List<String> lines) {
diff --git a/pkgs/markdown/lib/src/html_renderer.dart b/pkgs/markdown/lib/src/html_renderer.dart
index 97b900b..7dd1f9b 100644
--- a/pkgs/markdown/lib/src/html_renderer.dart
+++ b/pkgs/markdown/lib/src/html_renderer.dart
@@ -6,12 +6,13 @@
 
 import 'ast.dart';
 import 'document.dart';
+import 'inline_parser.dart';
 
 /// Converts the given string of markdown to HTML.
-String markdownToHtml(String markdown, {inlineSyntaxes, linkResolver,
-    bool inlineOnly: false}) {
+String markdownToHtml(String markdown, {List<InlineSyntax> inlineSyntaxes,
+  Resolver linkResolver, Resolver imageLinkResolver, bool inlineOnly: false}) {
   var document = new Document(inlineSyntaxes: inlineSyntaxes,
-      linkResolver: linkResolver);
+    imageLinkResolver: imageLinkResolver, linkResolver: linkResolver);
 
   if (inlineOnly) {
     return renderToHtml(document.parseInline(markdown));
diff --git a/pkgs/markdown/lib/src/inline_parser.dart b/pkgs/markdown/lib/src/inline_parser.dart
index 8bab6ba..e852384 100644
--- a/pkgs/markdown/lib/src/inline_parser.dart
+++ b/pkgs/markdown/lib/src/inline_parser.dart
@@ -84,7 +84,7 @@
     // Custom link resolvers goes after the generic text syntax.
     syntaxes.insertAll(1, [
       new LinkSyntax(linkResolver: document.linkResolver),
-      new ImageLinkSyntax(linkResolver: document.linkResolver)
+      new ImageLinkSyntax(linkResolver: document.imageLinkResolver)
     ]);
   }
 
@@ -251,6 +251,9 @@
 class LinkSyntax extends TagSyntax {
   final Resolver linkResolver;
 
+  /// Weather or not this link was resolved by a [Resolver]
+  bool resolved = false;
+
   /// The regex for the end of a link needs to handle both reference style and
   /// inline styles as well as optional titles for inline links. To make that
   /// a bit more palatable, this breaks it into pieces.
@@ -289,6 +292,7 @@
           (oldVal, child) => oldVal + child.text);
 
       // See if we have a resolver that will generate a link for us.
+      resolved = true;
       return linkResolver(textToResolve);
     } else {
       Link link = getLink(parser, match, state);
@@ -345,8 +349,9 @@
   ImageLinkSyntax({this.linkResolver})
     : super(pattern: r'!\[');
 
-  Element createNode(InlineParser parser, Match match, TagState state) {
-    Element node = super.createNode(parser, match, state);
+  Node createNode(InlineParser parser, Match match, TagState state) {
+    Node node = super.createNode(parser, match, state);
+    if (resolved) return node;
     if (node == null) return null;
 
     final Element imageElement = new Element.withTag("img")
diff --git a/pkgs/markdown/pubspec.yaml b/pkgs/markdown/pubspec.yaml
index e07d943..3426132 100644
--- a/pkgs/markdown/pubspec.yaml
+++ b/pkgs/markdown/pubspec.yaml
@@ -1,5 +1,5 @@
 name: markdown
-version: 0.7.0
+version: 0.7.1
 author: Dart Team <misc@dartlang.org>
 description: A library for converting markdown to HTML.
 homepage: https://github.com/dpeek/dart-markdown
@@ -7,3 +7,4 @@
   sdk: '>=1.0.0 <2.0.0'
 dev_dependencies:
   unittest: '>=0.9.0 <0.11.0'
+
diff --git a/pkgs/markdown/test/markdown_test.dart b/pkgs/markdown/test/markdown_test.dart
index e1cc81f..bb1a7cc 100644
--- a/pkgs/markdown/test/markdown_test.dart
+++ b/pkgs/markdown/test/markdown_test.dart
@@ -952,11 +952,16 @@
 
   group('Resolver', () {
     var nyanResolver = (text) => new Text('~=[,,_${text}_,,]:3');
-    validate('simple resolver', '''
+    validate('simple link resolver', '''
         resolve [this] thing
         ''', '''
         <p>resolve ~=[,,_this_,,]:3 thing</p>
         ''', linkResolver: nyanResolver);
+    validate('simple image resolver', '''
+        resolve ![this] thing
+        ''', '''
+        <p>resolve ~=[,,_this_,,]:3 thing</p>
+        ''', imageLinkResolver: nyanResolver);
   });
 
   group('Custom inline syntax', () {
@@ -1048,14 +1053,15 @@
 }
 
 void validate(String description, String markdown, String html,
-         {bool verbose: false, inlineSyntaxes, linkResolver,
-          bool inlineOnly: false}) {
+  {bool verbose: false, List<InlineSyntax> inlineSyntaxes,
+  Resolver linkResolver, Resolver imageLinkResolver, bool inlineOnly: false}) {
   test(description, () {
     markdown = cleanUpLiteral(markdown);
     html = cleanUpLiteral(html);
 
     var result = markdownToHtml(markdown, inlineSyntaxes: inlineSyntaxes,
-        linkResolver: linkResolver, inlineOnly: inlineOnly);
+        linkResolver: linkResolver, imageLinkResolver: imageLinkResolver,
+        inlineOnly: inlineOnly);
     var passed = compareOutput(html, result);
 
     if (!passed) {