diff --git a/Lib/rational.py b/Lib/rational.py
index 0d3ea2f..031ee0f 100755
--- a/Lib/rational.py
+++ b/Lib/rational.py
@@ -490,3 +490,18 @@
     def __nonzero__(a):
         """a != 0"""
         return a.numerator != 0
+
+    # support for pickling, copy, and deepcopy
+
+    def __reduce__(self):
+        return (self.__class__, (str(self),))
+
+    def __copy__(self):
+        if type(self) == Rational:
+            return self     # I'm immutable; therefore I am my own clone
+        return self.__class__(self.numerator, self.denominator)
+
+    def __deepcopy__(self, memo):
+        if type(self) == Rational:
+            return self     # My components are also immutable
+        return self.__class__(self.numerator, self.denominator)
diff --git a/Lib/test/test_rational.py b/Lib/test/test_rational.py
index 3242e43..20abce2 100644
--- a/Lib/test/test_rational.py
+++ b/Lib/test/test_rational.py
@@ -6,6 +6,8 @@
 import operator
 import rational
 import unittest
+from copy import copy, deepcopy
+from cPickle import dumps, loads
 R = rational.Rational
 
 def _components(r):
@@ -359,6 +361,12 @@
             s += num / fact * sign
         self.assertAlmostEquals(math.cos(1), s)
 
+    def test_copy_deepcopy_pickle(self):
+        r = R(13, 7)
+        self.assertEqual(r, loads(dumps(r)))
+        self.assertEqual(id(r), id(copy(r)))
+        self.assertEqual(id(r), id(deepcopy(r)))
+
 def test_main():
     run_unittest(RationalTest)
 
