diff --git a/Lib/ctypes/test/test_cfuncs.py b/Lib/ctypes/test/test_cfuncs.py
index c5bfa3f..7241006 100644
--- a/Lib/ctypes/test/test_cfuncs.py
+++ b/Lib/ctypes/test/test_cfuncs.py
@@ -158,17 +158,17 @@
         self.failUnlessEqual(self._dll.tf_bd(0, 42.), 14.)
         self.failUnlessEqual(self.S(), 42)
 
-##    def test_longdouble(self):
-##        self._dll.tf_D.restype = c_longdouble
-##        self._dll.tf_D.argtypes = (c_longdouble,)
-##        self.failUnlessEqual(self._dll.tf_D(42.), 14.)
-##        self.failUnlessEqual(self.S(), 42)
+    def test_longdouble(self):
+        self._dll.tf_D.restype = c_longdouble
+        self._dll.tf_D.argtypes = (c_longdouble,)
+        self.failUnlessEqual(self._dll.tf_D(42.), 14.)
+        self.failUnlessEqual(self.S(), 42)
 
-##    def test_longdouble_plus(self):
-##        self._dll.tf_bD.restype = c_longdouble
-##        self._dll.tf_bD.argtypes = (c_byte, c_longdouble)
-##        self.failUnlessEqual(self._dll.tf_bD(0, 42.), 14.)
-##        self.failUnlessEqual(self.S(), 42)
+    def test_longdouble_plus(self):
+        self._dll.tf_bD.restype = c_longdouble
+        self._dll.tf_bD.argtypes = (c_byte, c_longdouble)
+        self.failUnlessEqual(self._dll.tf_bD(0, 42.), 14.)
+        self.failUnlessEqual(self.S(), 42)
 
     def test_callwithresult(self):
         def process_result(result):
diff --git a/Lib/ctypes/test/test_functions.py b/Lib/ctypes/test/test_functions.py
index 2d80c7b..93d895b 100644
--- a/Lib/ctypes/test/test_functions.py
+++ b/Lib/ctypes/test/test_functions.py
@@ -143,17 +143,17 @@
         self.failUnlessEqual(result, -21)
         self.failUnlessEqual(type(result), float)
 
-##    def test_longdoubleresult(self):
-##        f = dll._testfunc_D_bhilfD
-##        f.argtypes = [c_byte, c_short, c_int, c_long, c_float, c_longdouble]
-##        f.restype = c_longdouble
-##        result = f(1, 2, 3, 4, 5.0, 6.0)
-##        self.failUnlessEqual(result, 21)
-##        self.failUnlessEqual(type(result), float)
+    def test_longdoubleresult(self):
+        f = dll._testfunc_D_bhilfD
+        f.argtypes = [c_byte, c_short, c_int, c_long, c_float, c_longdouble]
+        f.restype = c_longdouble
+        result = f(1, 2, 3, 4, 5.0, 6.0)
+        self.failUnlessEqual(result, 21)
+        self.failUnlessEqual(type(result), float)
 
-##        result = f(-1, -2, -3, -4, -5.0, -6.0)
-##        self.failUnlessEqual(result, -21)
-##        self.failUnlessEqual(type(result), float)
+        result = f(-1, -2, -3, -4, -5.0, -6.0)
+        self.failUnlessEqual(result, -21)
+        self.failUnlessEqual(type(result), float)
 
     def test_longlongresult(self):
         try:
