diff --git a/pom.xml b/pom.xml
index 587f8ab..49a41ad 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,7 @@
   <groupId>gwtexpui</groupId>
   <artifactId>gwtexpui</artifactId>
   <packaging>jar</packaging>
-  <version>1.0.2</version>
+  <version>1.0.3</version>
   <name>gwtexpui</name>
   <description>Extended UI tools for GWT</description>
   <url>http://android.git.kernel.org/?p=tools/gwtexpui.git</url>
diff --git a/src/main/java/com/google/gwtexpui/server/CacheControlFilter.java b/src/main/java/com/google/gwtexpui/server/CacheControlFilter.java
index 228495d..e389d23 100644
--- a/src/main/java/com/google/gwtexpui/server/CacheControlFilter.java
+++ b/src/main/java/com/google/gwtexpui/server/CacheControlFilter.java
@@ -60,7 +60,7 @@
     final HttpServletResponse rsp = (HttpServletResponse) srsp;
     final String pathInfo = pathInfo(req);
 
-    if (cacheForever(pathInfo)) {
+    if (cacheForever(pathInfo, req)) {
       final long now = System.currentTimeMillis();
       rsp.setHeader("Cache-Control", "max-age=31536000,public");
       rsp.setDateHeader("Expires", now + 31536000000L);
@@ -76,7 +76,8 @@
     chain.doFilter(req, rsp);
   }
 
-  private static boolean cacheForever(final String pathInfo) {
+  private static boolean cacheForever(final String pathInfo,
+      final HttpServletRequest req) {
     if (pathInfo.endsWith(".cache.html")) {
       return true;
     } else if (pathInfo.endsWith(".cache.gif")) {
@@ -89,6 +90,9 @@
       return true;
     } else if (pathInfo.endsWith(".cache.swf")) {
       return true;
+    } else if (pathInfo.endsWith(".nocache.js")) {
+      final String v = req.getParameter("content");
+      return v != null && v.length() > 20;
     }
     return false;
   }
