diff --git a/common/lib/xmodule/test_files/formularesponse_with_hint.xml b/common/lib/xmodule/test_files/formularesponse_with_hint.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e5b3e2870833974f18352202b74b3ce67281d1be
--- /dev/null
+++ b/common/lib/xmodule/test_files/formularesponse_with_hint.xml
@@ -0,0 +1,45 @@
+<problem>
+<script type="loncapa/python">
+from loncapa import *
+x1 = 4 # lc_random(2,4,1)
+y1 = 5 # lc_random(3,7,1)
+
+x2 = 10 # lc_random(x1+1,9,1)
+y2 = 20 # lc_random(y1+1,15,1)
+
+m = (y2-y1)/(x2-x1)
+b = y1 - m*x1
+answer = "%s*x+%s" % (m,b)
+answer = answer.replace('+-','-')
+
+inverted_m = (x2-x1)/(y2-y1)
+inverted_b = b
+wrongans = "%s*x+%s" % (inverted_m,inverted_b)
+wrongans = wrongans.replace('+-','-')
+</script>
+
+<text>
+<p>Hints can be provided to students, based on the last response given, as well as the history of responses given.  Here is an example of a hint produced by a Formula Response problem.</p>
+
+<p>
+What is the equation of the line which passess through ($x1,$y1) and
+($x2,$y2)?</p>
+
+<p>The correct answer is <tt>$answer</tt>. A common error is to invert the equation for the slope.  Enter <tt>
+$wrongans</tt> to see a hint.</p>
+
+</text>
+
+<formularesponse samples="x@-5:5#11" id="11" answer="$answer">
+ <responseparam description="Numerical Tolerance" type="tolerance" default="0.001" name="tol" /> 
+ <text>y = <textline size="25" /></text>
+  <hintgroup>
+   <formulahint samples="x@-5:5#11" answer="$wrongans" name="inversegrad">
+   </formulahint>
+   <hintpart on="inversegrad">
+    <text>You have inverted the slope in the question.</text>
+   </hintpart>
+  </hintgroup>     
+</formularesponse>
+</problem>
+
diff --git a/common/lib/xmodule/test_files/stringresponse_with_hint.xml b/common/lib/xmodule/test_files/stringresponse_with_hint.xml
new file mode 100644
index 0000000000000000000000000000000000000000..86efdf0f18e1b3265211a111f582eb318c18025f
--- /dev/null
+++ b/common/lib/xmodule/test_files/stringresponse_with_hint.xml
@@ -0,0 +1,25 @@
+<problem >
+ <text><h2>Example: String Response Problem</h2>
+ <br/>
+ </text>
+ 
+ <text>Which US state has Lansing as its capital?</text>
+  <stringresponse answer="Michigan" type="ci">
+  <textline size="20" />
+  <hintgroup>
+   <stringhint answer="wisconsin" type="cs" name="wisc">
+   </stringhint>
+   <stringhint answer="minnesota" type="cs" name="minn">
+   </stringhint>
+   <hintpart on="wisc">
+    <text>The state capital of Wisconsin is Madison.</text>
+   </hintpart>
+   <hintpart on="minn">
+    <text>The state capital of Minnesota is St. Paul.</text>
+   </hintpart>
+   <hintpart on="default">
+    <text>The state you are looking for is also known as the 'Great Lakes State'</text>
+   </hintpart>     
+  </hintgroup>
+ </stringresponse>
+</problem>
diff --git a/common/lib/xmodule/tests.py b/common/lib/xmodule/tests.py
index 6f054b4bfb8c40e9c81266002d7488d2d95d8d8b..370b3befe5d3667072bc3b1f466f10a880743926 100644
--- a/common/lib/xmodule/tests.py
+++ b/common/lib/xmodule/tests.py
@@ -256,6 +256,20 @@ class FormulaResponseWithHintTest(unittest.TestCase):
         self.assertEquals(cmap.get_correctness('1_2_1'), 'incorrect')
         self.assertTrue('You have inverted' in cmap.get_hint('1_2_1'))
 
+class StringResponseWithHintTest(unittest.TestCase):
+    '''
+    Test String response problem with a hint
+    '''
+    def test_or_grade(self):
+        problem_file = os.path.dirname(__file__)+"/test_files/stringresponse_with_hint.xml"
+        test_lcp = lcp.LoncapaProblem(open(problem_file), '1', system=i4xs)
+        correct_answers = {'1_2_1':'Michigan'}
+        test_answers = {'1_2_1':'Minnesota'}
+        self.assertEquals(test_lcp.grade_answers(correct_answers).get_correctness('1_2_1'), 'correct')
+        cmap = test_lcp.grade_answers(test_answers)
+        self.assertEquals(cmap.get_correctness('1_2_1'), 'incorrect')
+        self.assertTrue('St. Paul' in cmap.get_hint('1_2_1'))
+
 #-----------------------------------------------------------------------------
 # Grading tests