diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index e44174c..4d27c2b 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -27,6 +27,14 @@
 except ImportError:
     threading = None
 
+os.stat_float_times(True)
+st = os.stat(__file__)
+stat_supports_subsecond = (
+    # check if float and int timestamps are different
+    (st.st_atime != st[7])
+    or (st.st_mtime != st[8])
+    or (st.st_ctime != st[9]))
+
 # Detect whether we're on a Linux system that uses the (now outdated
 # and unmaintained) linuxthreads threading library.  There's an issue
 # when combining linuxthreads with a failed execv call: see
@@ -300,6 +308,8 @@
         st2 = os.stat(support.TESTFN)
         self.assertAlmostEqual(st1.st_mtime, st2.st_mtime, delta=10)
 
+    @unittest.skipUnless(stat_supports_subsecond,
+                         "os.stat() doesn't has a subsecond resolution")
     def _test_utime_subsecond(self, set_time_func):
         asec, amsec = 1, 901
         atime = asec + amsec * 1e-3
@@ -308,6 +318,7 @@
         filename = self.fname
         os.utime(filename, (0, 0))
         set_time_func(filename, atime, mtime)
+        os.stat_float_times(True)
         st = os.stat(filename)
         self.assertAlmostEqual(st.st_atime, atime, places=3)
         self.assertAlmostEqual(st.st_mtime, mtime, places=3)
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 14ef710..8b2b211 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -3539,7 +3539,6 @@
         mod = fmod(d, 1.0);
         mod *= 1e9;
         *nsec = (long)mod;
-        printf("%g => (%u, %li)\n", d, *sec, *nsec);
         return 0;
     }
 #if SIZEOF_TIME_T > SIZEOF_LONG
