diff --git a/src/main/java/com/googlesource/gerrit/plugins/gitiles/HttpModule.java b/src/main/java/com/googlesource/gerrit/plugins/gitiles/HttpModule.java
index 4fb070c..106a083 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/gitiles/HttpModule.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/gitiles/HttpModule.java
@@ -97,6 +97,11 @@
     // Filter all paths so we can decode escaped entities in the URI
     filter("/*").through(createPathFilter());
     filter("/*").through(new LoginFilter(userProvider, urls));
+
+    // make this plugin's classloader the context classloader to prevent
+    // classloader issue when rendering markdown
+    filterRegex("^(/)$", "^(/[^+].*)").through(SetContextClassLoader.class);
+
     // Let /+static, /+Documentation, etc. fall through to default servlet, but
     // handle everything else.
     serveRegex("^(/)$", "^(/[^+].*)").with(GitilesServlet.class);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/gitiles/SetContextClassLoader.java b/src/main/java/com/googlesource/gerrit/plugins/gitiles/SetContextClassLoader.java
new file mode 100644
index 0000000..e14454f
--- /dev/null
+++ b/src/main/java/com/googlesource/gerrit/plugins/gitiles/SetContextClassLoader.java
@@ -0,0 +1,51 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.googlesource.gerrit.plugins.gitiles;
+
+import com.google.inject.Singleton;
+
+import java.io.IOException;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+
+@Singleton
+public class SetContextClassLoader implements Filter {
+
+  @Override
+  public void init(FilterConfig arg0) throws ServletException {
+  }
+
+  @Override
+  public void doFilter(ServletRequest request, ServletResponse response,
+      FilterChain chain) throws IOException, ServletException {
+    Thread t = Thread.currentThread();
+    ClassLoader old = t.getContextClassLoader();
+    try {
+      t.setContextClassLoader(SetContextClassLoader.class.getClassLoader());
+      chain.doFilter(request, response);
+    } finally {
+      t.setContextClassLoader(old);
+    }
+  }
+
+  @Override
+  public void destroy() {
+  }
+}
