diff --git a/Lib/decimal.py b/Lib/decimal.py
index 75a1d5e..a2e7fa4 100644
--- a/Lib/decimal.py
+++ b/Lib/decimal.py
@@ -2454,6 +2454,9 @@
 
     def sqrt(self, context=None):
         """Return the square root of self."""
+        if context is None:
+            context = getcontext()
+
         if self._is_special:
             ans = self._check_nans(context=context)
             if ans:
@@ -2467,9 +2470,6 @@
             ans = _dec_from_triple(self._sign, '0', self._exp // 2)
             return ans._fix(context)
 
-        if context is None:
-            context = getcontext()
-
         if self._sign == 1:
             return context._raise_error(InvalidOperation, 'sqrt(-x), x > 0')
 
diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py
index 7c607f9..a76b505 100644
--- a/Lib/test/test_decimal.py
+++ b/Lib/test/test_decimal.py
@@ -1303,6 +1303,12 @@
         d = d1.max(d2)
         self.assertTrue(type(d) is Decimal)
 
+    def test_implicit_context(self):
+        # Check results when context given implicitly.  (Issue 2478)
+        c = getcontext()
+        self.assertEqual(str(Decimal(0).sqrt()),
+                         str(c.sqrt(Decimal(0))))
+
 
 class DecimalPythonAPItests(unittest.TestCase):
 
diff --git a/Misc/developers.txt b/Misc/developers.txt
index 089e122..afb031f 100644
--- a/Misc/developers.txt
+++ b/Misc/developers.txt
@@ -17,6 +17,9 @@
 Permissions History
 -------------------
 
+- Benjamin Peterson was given SVN access on 25 March 2008 by Georg
+  Brandl, for bug triage work.
+
 - Jerry Seutter was given SVN access on 20 March 2008 by BAC, for
   general contributions to Python.
 
