diff --git a/vraptor-core/src/main/java/br/com/caelum/vraptor/view/DefaultLogicResult.java b/vraptor-core/src/main/java/br/com/caelum/vraptor/view/DefaultLogicResult.java
index <HASH>..<HASH> 100644
--- a/vraptor-core/src/main/java/br/com/caelum/vraptor/view/DefaultLogicResult.java
+++ b/vraptor-core/src/main/java/br/com/caelum/vraptor/view/DefaultLogicResult.java
@@ -46,6 +46,8 @@ import br.com.caelum.vraptor.proxy.Proxifier;
 import br.com.caelum.vraptor.proxy.ProxyInvocationException;
 import br.com.caelum.vraptor.proxy.SuperMethod;
 
+import com.google.common.base.Throwables;
+
 /**
  * The default implementation of LogicResult.<br>
  * Uses cglib to provide proxies for client side redirect (url creation).
@@ -116,9 +118,7 @@ public class DefaultLogicResult implements LogicResult {
 					}
 					return null;
 				} catch (InvocationTargetException e) {
-					if (e.getCause() instanceof RuntimeException) {
-						throw (RuntimeException) e.getCause();
-					}
+					Throwables.propagateIfPossible(e.getCause());
 					throw new ProxyInvocationException(e);
 				} catch (Exception e) {
 					throw new ProxyInvocationException(e);
Using Guava to propagate exception instead of ifs