diff --git a/Lib/dumbdbm.py b/Lib/dumbdbm.py
index b85844d..84a7665 100644
--- a/Lib/dumbdbm.py
+++ b/Lib/dumbdbm.py
@@ -81,6 +81,7 @@
             pass
         else:
             for line in f:
+                line = line.rstrip()
                 key, pos_and_siz_pair = eval(line)
                 self._index[key] = pos_and_siz_pair
             f.close()
diff --git a/Lib/test/test_dumbdbm.py b/Lib/test/test_dumbdbm.py
index 12df673..d320110 100644
--- a/Lib/test/test_dumbdbm.py
+++ b/Lib/test/test_dumbdbm.py
@@ -74,6 +74,24 @@
         self.assertEqual(f['1'], 'hello2')
         f.close()
 
+    def test_line_endings(self):
+        # test for bug #1172763: dumbdbm would die if the line endings
+        # weren't what was expected.
+        f = dumbdbm.open(_fname)
+        f['1'] = 'hello'
+        f['2'] = 'hello2'
+        f.close()
+
+        # Mangle the file by adding \r before each newline
+        data = open(_fname + '.dir').read()
+        data = data.replace('\n', '\r\n')
+        open(_fname + '.dir', 'wb').write(data)
+        
+        f = dumbdbm.open(_fname)
+        self.assertEqual(f['1'], 'hello')
+        self.assertEqual(f['2'], 'hello2')
+        
+                
     def read_helper(self, f):
         keys = self.keys_helper(f)
         for key in self._dict:
