diff --git a/src/main/java/com/google/gwtorm/jdbc/AccessGen.java b/src/main/java/com/google/gwtorm/jdbc/AccessGen.java
index ea1412f..819dafe 100644
--- a/src/main/java/com/google/gwtorm/jdbc/AccessGen.java
+++ b/src/main/java/com/google/gwtorm/jdbc/AccessGen.java
@@ -78,7 +78,7 @@
         Type.getObjectType(model.getEntityTypeClassName().replace('.', '/'));
   }
 
-  <A extends Access<?, ?>> Class<A> create() throws OrmException {
+  public Class<?> create() throws OrmException {
     init();
     implementConstructor();
     implementGetString("getRelationName", model.getRelationName());
@@ -122,11 +122,9 @@
     return loadClass();
   }
 
-  @SuppressWarnings("unchecked")
-  private <A extends Access<?, ?>> Class<A> loadClass() throws OrmException {
+  private Class<?> loadClass() throws OrmException {
     try {
-      final Class<?> c = Class.forName(implClassName, false, classLoader);
-      return (Class<A>) c;
+      return Class.forName(implClassName, false, classLoader);
     } catch (ClassNotFoundException err) {
       throw new OrmException("Cannot load generated class", err);
     }
diff --git a/src/main/java/com/google/gwtorm/jdbc/Database.java b/src/main/java/com/google/gwtorm/jdbc/Database.java
index e1982d5..184edff 100644
--- a/src/main/java/com/google/gwtorm/jdbc/Database.java
+++ b/src/main/java/com/google/gwtorm/jdbc/Database.java
@@ -14,7 +14,6 @@
 
 package com.google.gwtorm.jdbc;
 
-import com.google.gwtorm.client.Access;
 import com.google.gwtorm.client.KeyUtil;
 import com.google.gwtorm.client.OrmException;
 import com.google.gwtorm.client.Schema;
@@ -112,8 +111,7 @@
     return new SchemaGen(loader, schemaModel, JdbcSchema.class,
         new SchemaGen.AccessGenerator() {
           @Override
-          public <A extends Access<?, ?>> Class<A> create(
-              GeneratedClassLoader loader, RelationModel rm)
+          public Class<?> create(GeneratedClassLoader loader, RelationModel rm)
               throws OrmException {
             return new AccessGen(loader, rm, dialect).create();
           }
diff --git a/src/main/java/com/google/gwtorm/server/SchemaGen.java b/src/main/java/com/google/gwtorm/server/SchemaGen.java
index d6aa052..9cbce29 100644
--- a/src/main/java/com/google/gwtorm/server/SchemaGen.java
+++ b/src/main/java/com/google/gwtorm/server/SchemaGen.java
@@ -14,7 +14,6 @@
 
 package com.google.gwtorm.server;
 
-import com.google.gwtorm.client.Access;
 import com.google.gwtorm.client.OrmException;
 import com.google.gwtorm.client.Schema;
 import com.google.gwtorm.jdbc.Database;
@@ -35,8 +34,8 @@
 /** Generates a concrete implementation of a {@link Schema} extension. */
 public class SchemaGen<S extends AbstractSchema> implements Opcodes {
   public interface AccessGenerator {
-    <A extends Access<?, ?>> Class<A> create(GeneratedClassLoader loader,
-        RelationModel rm) throws OrmException;
+    Class<?> create(GeneratedClassLoader loader, RelationModel rm)
+        throws OrmException;
   }
 
   private final GeneratedClassLoader classLoader;
@@ -95,7 +94,7 @@
   private void defineRelationClasses() throws OrmException {
     relations = new ArrayList<RelationGen>();
     for (final RelationModel rel : schema.getRelations()) {
-      final Class<? extends Access> a = accessGen.create(classLoader, rel);
+      final Class<?> a = accessGen.create(classLoader, rel);
       relations.add(new RelationGen(rel, a));
     }
   }
