Type variable support.
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/symbol/internal/impl/Util.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/symbol/internal/impl/Util.java
index d2fa682..8e136f1 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/symbol/internal/impl/Util.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/symbol/internal/impl/Util.java
@@ -55,10 +55,9 @@
                 try 
                 {
                     // resolve the method's return type; don't erase parameters
-                    String retTypeSignature = 
-                        TypeUtil.resolveTypeSignature
-                            (type, callMethod.getReturnType(), false);
-
+                    String retTypeSignature = callMethod.getReturnType();
+                        
+                    // if we have a type variable, try to parameter match it
                     if (Signature.getTypeSignatureKind(retTypeSignature) == Signature.TYPE_VARIABLE_SIGNATURE)
                     {
                         retTypeSignature = TypeUtil.matchTypeParameterToArgument
@@ -70,6 +69,12 @@
                             retTypeSignature = TypeConstants.TYPE_JAVAOBJECT;
                         }
                     }
+                    // otherwise, try and resolve it in type
+                    else
+                    {
+                    	retTypeSignature = TypeUtil.resolveTypeSignature
+                    		(type, callMethod.getReturnType(), false);
+                    }
 
                     final IPropertySymbol  propSymbol = 
                         SymbolFactory.eINSTANCE.createIPropertySymbol();