diff --git a/webform_calculator.js b/webform_calculator.js
index 97ad766..4ef4f43 100755
--- a/webform_calculator.js
+++ b/webform_calculator.js
@@ -48,6 +48,8 @@
     var elements = Drupal.webformCalculator.getComponentsKeys(formulaComponent);
 
     var invalidFields = [];
+    var arrComponentValues = [];
+    var iCnt = 0;
     $(elements).each(function(index, componentKey) {
       var componentValue;
       // Number
@@ -90,6 +92,7 @@
         invalidFields.push(label);
       }
       else {
+        arrComponentValues[iCnt++] = componentValue;
         formulaReplaced = formulaReplaced.replace('{' + componentKey + '}', '(' + componentValue + ')');
       }
     });
@@ -106,7 +109,13 @@
     }
     else {
       // Set result.
-      var formulaResult = eval(formulaReplaced);
+      var n = formulaReplaced.indexOf("^");
+      if(n >= 0) {
+        var formulaResult = Math.pow(arrComponentValues[0], arrComponentValues[1]);
+      }
+      else {
+        var formulaResult = eval(formulaReplaced);
+      }
       formulaResult = Drupal.webformCalculator.round(formulaResult, formulaComponent.extra.precision);
       formulaComponentElement.text(formulaResult);
       // Show prefix and suffix.
diff --git a/webform_calculator.module b/webform_calculator.module
index c60bd0b..a331c0c 100755
--- a/webform_calculator.module
+++ b/webform_calculator.module
@@ -43,7 +43,17 @@ function webform_calculator_webform_submission_presave($node, &$submission) {
  *   Calculated value for given formula.
  */
 function webform_calculator_eval($formula, $precision = 1) {
-  eval("\$result = $formula;");
+  if(strpos($formula, "^") !== FALSE) {
+    list($x, $y) = explode("^", $formula);
+    $x = str_replace(array( '(', ')' ), '', $x);
+    $y = str_replace(array( '(', ')' ), '', $y);
+    $x = (int)$x;
+    $y = (int)$y;
+    $result = pow($x, $y);
+  }
+  else {
+    eval("\$result = $formula;");
+  }
   return round($result, $precision);
 }
 
@@ -131,7 +141,7 @@ function webform_calculator_replace_formula_values($formula_component, $webform_
  */
 function webform_calculator_validate_php($code) {
   $allowed_tokens = array(T_LNUMBER, T_DNUMBER, T_WHITESPACE);
-  $allowed_chars = array('+', '-', '*', '/', '(', ')', '%');
+  $allowed_chars = array('+', '-', '*', '/', '(', ')', '%', '^');
 
   $tokens = token_get_all('<?php ' . $code);
   // Remove opening php tag.
