Index: src/clj/clojure/genclass.clj
===================================================================
--- src/clj/clojure/genclass.clj	(revision 1139)
+++ src/clj/clojure/genclass.clj	(working copy)
@@ -57,6 +57,16 @@
                                  (map escape-class-name pclasses)))
     (str mname "-void")))
 
+(defn- find-field [#^Class c f]
+  (loop [lc c]
+    (if (= lc Object)
+      (throw (new Exception (str "field, " f ", not defined in class, " c ", or its ancestors")))
+      (let [dflds (.getDeclaredFields lc)
+            rfld (first (filter #(= f (.getName %)) dflds))]
+        (if (nil? rfld) 
+          (recur (.getSuperclass lc))
+          rfld)))))
+
 ;(distinct (map first(keys (mapcat non-private-methods [Object IPersistentMap]))))
 
 (def #^{:private true} prim->class
@@ -373,7 +383,7 @@
         (. gen (endMethod))))
                                         ;field exposers
     (doseq [[f {getter :get setter :set}] exposes]
-      (let [fld (.getDeclaredField super (str f))
+      (let [fld (find-field super (str f))
             ftype (totype (.getType fld))]
         (when getter
           (let [m (new Method (str getter) ftype (to-types []))
