diff --git a/phasefield/analytical.py b/phasefield/analytical.py
index 48b561e2b551d4a83bd8d9a7774215489f7306d0..927929c551c6df15d6cef0e6002ad8e0f205c608 100644
--- a/phasefield/analytical.py
+++ b/phasefield/analytical.py
@@ -79,11 +79,22 @@ def free_energy_functional_n_phases_penalty_term(order_parameters, interface_wid
 
 
 def n_phases_correction_function(c, beta, power=2):
+    return sp.Piecewise((-beta * c ** power, c < 0),
+                        (-beta * (1 - c) ** power, c > 1),
+                        (c ** 2 * (1 - c) ** 2, True))
+
+def n_phases_correction_function_wrong(c, beta, power=2):
     return sp.Piecewise((-beta * c ** power, c < 0),
                         (-beta * (1 - c) ** power, c > 1),
                         (c ** 2 * (1 - c) ** power, True))
 
 
+def n_phases_correction_function_sign_switch(c, beta):
+    return sp.Piecewise((-beta * (c ** 2) * (1 - c) ** 2, c < 0),
+                        (-beta * (c ** 2) * (1 - c) ** 2, c > 1),
+                        (c ** 2 * (1 - c) ** 2, True))
+
+
 def free_energy_functional_n_phases(num_phases=None, surface_tensions=symmetric_symbolic_surface_tension,
                                     interface_width=interface_width_symbol, order_parameters=None,
                                     include_bulk=True, include_interface=True, symbolic_lambda=False,
@@ -121,7 +132,7 @@ def free_energy_functional_n_phases(num_phases=None, surface_tensions=symmetric_
         include_interface:if false no interface contribution is added
         symbolic_lambda: surface energy coefficient is represented by symbol, not in expanded form
         symbolic_dependent_variable: last phase variable is defined as 1-other_phase_vars, if this is set to True
-                                   it is represented by phi_A for better readability
+                                     it is represented by phi_A for better readability
     """
     assert not (num_phases is None and order_parameters is None)
     if order_parameters is None: