diff --git a/djangoapps/courseware/capa/calc.py b/djangoapps/courseware/capa/calc.py
index fb64c58139735fea40727f18a81b0e6a9e782fc1..42bb5c3112182003c7f419397693ec987c6d4aa8 100644
--- a/djangoapps/courseware/capa/calc.py
+++ b/djangoapps/courseware/capa/calc.py
@@ -78,17 +78,23 @@ def evaluator(variables, functions, string, cs=False):
     # log.debug("functions: {0}".format(functions))
     # log.debug("string: {0}".format(string))
 
+    def lower_dict(d):
+        return dict([(k.lower(), d[k]) for k in d])
+
     all_variables = copy.copy(default_variables)
-    all_variables.update(variables)
     all_functions = copy.copy(default_functions)
+
+    if not cs: 
+        all_variables = lower_dict(all_variables)
+        all_functions = lower_dict(all_functions)
+
+    all_variables.update(variables)    
     all_functions.update(functions)
     
     if not cs: 
         string_cs = string.lower()
-        for v in all_variables.keys():
-            all_variables[v.lower()]=all_variables[v]
-        for f in all_functions.keys():
-            all_functions[f.lower()]=all_functions[f]
+        all_functions = lower_dict(all_functions)
+        all_variables = lower_dict(all_variables)
         CasedLiteral = CaselessLiteral 
     else:
         string_cs = string
diff --git a/djangoapps/courseware/tests.py b/djangoapps/courseware/tests.py
index 7eb6aa27dee9ef4d1bde5b46a604c027e8ca1e2b..7a63b9a75f30e14b3902b581bcab702de3e6262b 100644
--- a/djangoapps/courseware/tests.py
+++ b/djangoapps/courseware/tests.py
@@ -33,6 +33,11 @@ class ModelsTest(unittest.TestCase):
         self.assertTrue(abs(calc.evaluator(variables, functions, "k*T/q-0.025"))<0.001)
         self.assertTrue(abs(calc.evaluator(variables, functions, "e^(j*pi)")+1)<0.00001)
         self.assertTrue(abs(calc.evaluator(variables, functions, "j||1")-0.5-0.5j)<0.00001)
+        variables['t'] = 1.0
+        self.assertTrue(abs(calc.evaluator(variables, functions, "t")-1.0)<0.00001)
+        self.assertTrue(abs(calc.evaluator(variables, functions, "T")-1.0)<0.00001)
+        self.assertTrue(abs(calc.evaluator(variables, functions, "t", cs=True)-1.0)<0.00001)
+        self.assertTrue(abs(calc.evaluator(variables, functions, "T", cs=True)-298)<0.2)
         exception_happened = False
         try: 
             calc.evaluator({},{}, "5+7 QWSEKO")