only test for named pipe when os.stat doesn't raise #6209
diff --git a/Lib/shutil.py b/Lib/shutil.py
index c46ec47..a689256 100644
--- a/Lib/shutil.py
+++ b/Lib/shutil.py
@@ -58,9 +58,10 @@
         except OSError:
             # File most likely does not exist
             pass
-        # XXX What about other special files? (sockets, devices...)
-        if stat.S_ISFIFO(st.st_mode):
-            raise SpecialFileError("`%s` is a named pipe" % fn)
+        else:
+            # XXX What about other special files? (sockets, devices...)
+            if stat.S_ISFIFO(st.st_mode):
+                raise SpecialFileError("`%s` is a named pipe" % fn)
     try:
         fsrc = open(src, 'rb')
         fdst = open(dst, 'wb')