Fix some return values
diff --git a/library/x509parse.c b/library/x509parse.c
index a762855..9f90b5a 100644
--- a/library/x509parse.c
+++ b/library/x509parse.c
@@ -605,8 +605,9 @@
 #if defined(POLARSSL_ECP_C)
     if( pk_alg == POLARSSL_PK_ECKEY_DH || pk_alg == POLARSSL_PK_ECKEY )
     {
-        ret = x509_use_ecparams( &alg_params, &pk_ec( *pk )->grp ) ||
-              x509_get_ecpubkey( p, end, pk_ec( *pk ) );
+        ret = x509_use_ecparams( &alg_params, &pk_ec( *pk )->grp );
+        if( ret == 0 )
+            ret = x509_get_ecpubkey( p, end, pk_ec( *pk ) );
     } else
 #endif /* POLARSSL_ECP_C */
         ret = POLARSSL_ERR_X509_UNKNOWN_PK_ALG;