diff --git a/Lib/pstats.py b/Lib/pstats.py
index bdbb27e..adaac5c 100644
--- a/Lib/pstats.py
+++ b/Lib/pstats.py
@@ -512,7 +512,8 @@
         new_callers[func] = caller
     for func, caller in source.iteritems():
         if func in new_callers:
-            new_callers[func] = caller + new_callers[func]
+            new_callers[func] = tuple([i[0] + i[1] for i in
+                                       zip(caller, new_callers[func])])
         else:
             new_callers[func] = caller
     return new_callers
diff --git a/Lib/test/test_pstats.py b/Lib/test/test_pstats.py
new file mode 100644
index 0000000..660316b
--- /dev/null
+++ b/Lib/test/test_pstats.py
@@ -0,0 +1,26 @@
+import unittest
+from test import test_support
+import pstats
+
+
+
+class AddCallersTestCase(unittest.TestCase):
+    """Tests for pstats.add_callers helper."""
+
+    def test_combine_results(self):
+        """pstats.add_callers should combine the call results of both target
+        and source by adding the call time. See issue1269."""
+        target = {"a": (1, 2, 3, 4)}
+        source = {"a": (1, 2, 3, 4), "b": (5, 6, 7, 8)}
+        new_callers = pstats.add_callers(target, source)
+        self.assertEqual(new_callers, {'a': (2, 4, 6, 8), 'b': (5, 6, 7, 8)})
+
+
+def test_main():
+    test_support.run_unittest(
+        AddCallersTestCase
+    )
+
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Misc/NEWS b/Misc/NEWS
index 98f4a22..e608478 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -369,6 +369,9 @@
 Library
 -------
 
+- #1269: fix a bug in pstats.add_callers() and add a unit test file for
+  pstats.
+
 - #1669: don't allow shutil.rmtree() to be called on a symlink to a
   directory.
 
