diff --git a/ForgeImporters/forgeimporters/google/__init__.py b/ForgeImporters/forgeimporters/google/__init__.py
index 8c9081e..b848151 100644
--- a/ForgeImporters/forgeimporters/google/__init__.py
+++ b/ForgeImporters/forgeimporters/google/__init__.py
@@ -61,8 +61,12 @@
             qs = parse_qs(href.query)
             gc_link = not href.netloc or href.netloc == 'code.google.com'
             path_parts = href.path.split('/')
-            target_project = path_parts[
-                2] if gc_link and len(path_parts) >= 3 else ''
+            target_project = None
+            if gc_link:
+                if len(path_parts) >= 5 and path_parts[1] == 'a':
+                    target_project = '/'.join(path_parts[1:5])
+                elif len(path_parts) >= 3:
+                    target_project = path_parts[2]
             internal_link = target_project == project_name
             if gc_link and internal_link and 'id' in qs:
                 # rewrite issue 123 project-internal issue links
@@ -76,6 +80,8 @@
                 fragment = '[%s](%s)' % (
                     h.plain2markdown(
                         fragment.text, preserve_multiple_spaces=True, has_html_entities=True),
+                    # possibly need to adjust this URL for /a/ hosted domain URLs,
+                    # but it seems fragment['href'] always starts with / so it replaces the given path
                     urljoin('https://code.google.com/p/%s/issues/' %
                             project_name, fragment['href']),
                 )
diff --git a/ForgeImporters/forgeimporters/google/tests/test_init.py b/ForgeImporters/forgeimporters/google/tests/test_init.py
index 8acb0e3..2c536cd 100644
--- a/ForgeImporters/forgeimporters/google/tests/test_init.py
+++ b/ForgeImporters/forgeimporters/google/tests/test_init.py
@@ -18,9 +18,11 @@
 from nose.tools import assert_equal
 from mock import patch
 from formencode.validators import Invalid
+from BeautifulSoup import BeautifulSoup
 
 from allura.tests import decorators as td
 from forgeimporters.google import GoogleCodeProjectNameValidator, GoogleCodeProjectExtractor
+from forgeimporters.google import _as_markdown
 
 
 class TestGoogleCodeProjectNameValidator(object):
@@ -81,3 +83,37 @@
         )
         with td.raises(Invalid):
             GoogleCodeProjectNameValidator()._to_python('http://code.google.com/a/eclipselabs.org/bogus')
+
+
+class Test_as_markdown(object):
+
+    # this is covered by functional tests (useing test-issue.html)
+    # but adding some unit tests for easier verification of hosted domain link rewriting
+
+    def test_link_within_proj(self):
+        html = BeautifulSoup('''<pre>Foo: <a href="/p/myproj/issues/detail?id=1">issue 1</a></pre>''')
+        assert_equal(
+            _as_markdown(html.first(), 'myproj'),
+            'Foo: [issue 1](#1)'
+        )
+
+    def test_link_other_proj(self):
+        html = BeautifulSoup('''<pre>Foo: <a href="/p/other-project/issues/detail?id=1">issue other-project:1</a></pre>''')
+        assert_equal(
+            _as_markdown(html.first(), 'myproj'),
+            'Foo: [issue other-project:1](https://code.google.com/p/other-project/issues/detail?id=1)'
+        )
+
+    def test_link_hosted_domain_within_proj(self):
+        html = BeautifulSoup('''<pre>Foo: <a href="/a/eclipselabs.org/p/myproj/issues/detail?id=1">issue 1</a></pre>''')
+        assert_equal(
+            _as_markdown(html.first(), 'a/eclipselabs.org/p/myproj'),
+            'Foo: [issue 1](#1)'
+        )
+
+    def test_link_hosted_domain_other_proj(self):
+        html = BeautifulSoup('''<pre>Foo: <a href="/a/eclipselabs.org/p/other-proj/issues/detail?id=1">issue 1</a></pre>''')
+        assert_equal(
+            _as_markdown(html.first(), 'a/eclipselabs.org/p/myproj'),
+            'Foo: [issue 1](https://code.google.com/a/eclipselabs.org/p/other-proj/issues/detail?id=1)'
+        )
