diff --git a/stub/src/main/java/org/apache/commons/proxy2/stub/StubConfiguration.java b/stub/src/main/java/org/apache/commons/proxy2/stub/StubConfiguration.java
index 0662db5..b4825c6 100644
--- a/stub/src/main/java/org/apache/commons/proxy2/stub/StubConfiguration.java
+++ b/stub/src/main/java/org/apache/commons/proxy2/stub/StubConfiguration.java
@@ -49,15 +49,15 @@
     /**
      * Intermediate result of a generic when(...) call
      *
-     * @param <RT>
+     * @param <R>
      */
-    interface When<RT> extends MayThrow {
+    interface When<R> extends MayThrow {
         /**
          * Declare return value.
          * @param result
          * @return the original {@link StubConfiguration} for chaining
          */
-        StubConfiguration thenReturn(RT result);
+        StubConfiguration thenReturn(R result);
 
         /**
          * Defer return value.
@@ -65,7 +65,7 @@
          * @return the original {@link StubConfiguration} for chaining
          */
         StubConfiguration thenAnswer(
-                ObjectProvider<? extends RT> objectProvider);
+                ObjectProvider<? extends R> objectProvider);
 
     }
 
diff --git a/stub/src/main/java/org/apache/commons/proxy2/stub/StubConfigurer.java b/stub/src/main/java/org/apache/commons/proxy2/stub/StubConfigurer.java
index c3468a5..12a9bc9 100644
--- a/stub/src/main/java/org/apache/commons/proxy2/stub/StubConfigurer.java
+++ b/stub/src/main/java/org/apache/commons/proxy2/stub/StubConfigurer.java
@@ -86,17 +86,17 @@
     /**
      * {@inheritDoc}
      */
-    public <RT> org.apache.commons.proxy2.stub.StubConfiguration.When<RT> when(
-            RT call) {
-        return new When<RT>() {
+    public <R> org.apache.commons.proxy2.stub.StubConfiguration.When<R> when(
+            R call) {
+        return new When<R>() {
 
-            public StubConfiguration thenReturn(RT result) {
+            public StubConfiguration thenReturn(R result) {
                 requireStubInterceptor().addAnswer(result);
                 return StubConfigurer.this;
             }
 
             public StubConfiguration thenAnswer(
-                    ObjectProvider<? extends RT> objectProvider) {
+                    ObjectProvider<? extends R> objectProvider) {
                 requireStubInterceptor().addAnswer(objectProvider);
                 return StubConfigurer.this;
             }
