diff --git a/alberta/src/Common/alberta.h b/alberta/src/Common/alberta.h
index 48d08289a5f6aa82102ce5d4a8d2000520f62e4b..5ea7aeb007c586293384b44bb77b0ad16dfc5e70 100644
--- a/alberta/src/Common/alberta.h
+++ b/alberta/src/Common/alberta.h
@@ -3841,6 +3841,12 @@ void check_quadrature(const QUAD *quad);
 
 REAL  integrate_std_simp(const QUAD *quad, REAL (*f)(const REAL_B lambda));
 
+#ifndef __cplusplus
+/* These are some functions defined in evaluate.h. Due to the fact
+ * that C++ still lacks C99 variable length array support (at least in
+ * general) evaluate.h is not included, and anything depending on it
+ * is disabled.
+ */
 static inline
 const REAL   *f_at_qp(REAL quad_vec[],
 		      const QUAD *quad, REAL (*f)(const REAL_B lambda));
@@ -3907,6 +3913,7 @@ param_grd_f_loc_d_at_qp(REAL_DD quad_vec[],
 			const EL_INFO *el_info,
 			const QUAD *quad, const REAL_BD Lambda[],
 			GRD_LOC_FCT_D_AT_QP grd_f_at_qp, void *ud);
+#endif /* __cplusplus */
 
 const QUAD_FAST *get_quad_fast(const BAS_FCTS *, const QUAD *, FLAGS init_flag);