diff --git a/Lib/pathlib.py b/Lib/pathlib.py
index d70fde0..5142ff6 100644
--- a/Lib/pathlib.py
+++ b/Lib/pathlib.py
@@ -418,7 +418,12 @@
 
     unlink = os.unlink
 
-    link_to = os.link
+    if hasattr(os, "link"):
+        link_to = os.link
+    else:
+        @staticmethod
+        def link_to(self, target):
+            raise NotImplementedError("os.link() not available on this system")
 
     rmdir = os.rmdir
 
@@ -430,6 +435,7 @@
         if supports_symlinks:
             symlink = os.symlink
         else:
+            @staticmethod
             def symlink(a, b, target_is_directory):
                 raise NotImplementedError("symlink() not available on this system")
     else:
diff --git a/Lib/test/test_pathlib.py b/Lib/test/test_pathlib.py
index 058a201..d05b956 100644
--- a/Lib/test/test_pathlib.py
+++ b/Lib/test/test_pathlib.py
@@ -1759,6 +1759,7 @@
         self.assertFileNotFound(p.stat)
         self.assertFileNotFound(p.unlink)
 
+    @unittest.skipUnless(hasattr(os, "link"), "os.link() is not present")
     def test_link_to(self):
         P = self.cls(BASE)
         p = P / 'fileA'
@@ -1778,6 +1779,15 @@
         self.assertEqual(os.stat(r).st_size, size)
         self.assertTrue(q.stat)
 
+    @unittest.skipIf(hasattr(os, "link"), "os.link() is present")
+    def test_link_to_not_implemented(self):
+        P = self.cls(BASE)
+        p = P / 'fileA'
+        # linking to another path.
+        q = P / 'dirA' / 'fileAA'
+        with self.assertRaises(NotImplementedError):
+            p.link_to(q)
+
     def test_rename(self):
         P = self.cls(BASE)
         p = P / 'fileA'
@@ -2011,6 +2021,15 @@
         self.assertTrue(link.is_dir())
         self.assertTrue(list(link.iterdir()))
 
+    @unittest.skipIf(support.can_symlink(), "symlink support is present")
+    def test_symlink_to_not_implemented(self):
+        P = self.cls(BASE)
+        target = P / 'fileA'
+        # Symlinking a path target.
+        link = P / 'dirA' / 'linkAA'
+        with self.assertRaises(NotImplementedError):
+            link.symlink_to(target)
+
     def test_is_dir(self):
         P = self.cls(BASE)
         self.assertTrue((P / 'dirA').is_dir())
