diff --git a/Lib/test/test_wave.py b/Lib/test/test_wave.py
index b70f917..30dca90b 100644
--- a/Lib/test/test_wave.py
+++ b/Lib/test/test_wave.py
@@ -1,5 +1,6 @@
 from test.support import TESTFN, unlink
 import wave
+import pickle
 import unittest
 
 nchannels = 2
@@ -69,6 +70,18 @@
         self.assertEqual(params.comptype, self.f.getcomptype())
         self.assertEqual(params.compname, self.f.getcompname())
 
+    def test_getparams_picklable(self):
+        self.f = wave.open(TESTFN, 'wb')
+        self.f.setnchannels(nchannels)
+        self.f.setsampwidth(sampwidth)
+        self.f.setframerate(framerate)
+        self.f.close()
+
+        self.f = wave.open(TESTFN, 'rb')
+        params = self.f.getparams()
+        dump = pickle.dumps(params)
+        self.assertEqual(pickle.loads(dump), params)
+
     def test_wave_write_context_manager_calls_close(self):
         # Close checks for a minimum header and will raise an error
         # if it is not set, so this proves that close is called.
diff --git a/Lib/wave.py b/Lib/wave.py
index f43569e..1c6380e 100644
--- a/Lib/wave.py
+++ b/Lib/wave.py
@@ -87,7 +87,7 @@
 from chunk import Chunk
 from collections import namedtuple
 
-_result = namedtuple('params',
+_wave_params = namedtuple('_wave_params',
                      'nchannels sampwidth framerate nframes comptype compname')
 
 class Wave_read:
@@ -212,7 +212,7 @@
         return self._compname
 
     def getparams(self):
-        return _result(self.getnchannels(), self.getsampwidth(),
+        return _wave_params(self.getnchannels(), self.getsampwidth(),
                        self.getframerate(), self.getnframes(),
                        self.getcomptype(), self.getcompname())
 
@@ -410,7 +410,7 @@
     def getparams(self):
         if not self._nchannels or not self._sampwidth or not self._framerate:
             raise Error('not all parameters set')
-        return _result(self._nchannels, self._sampwidth, self._framerate,
+        return _wave_params(self._nchannels, self._sampwidth, self._framerate,
               self._nframes, self._comptype, self._compname)
 
     def setmark(self, id, pos, name):
