diff --git a/Lib/commands.py b/Lib/commands.py
index d19aa1a..b4e1d3c 100644
--- a/Lib/commands.py
+++ b/Lib/commands.py
@@ -63,6 +63,8 @@
 # Make command argument from directory and pathname (prefix space, add quotes).
 #
 def mk2arg(head, x):
+    from warnings import warnpy3k
+    warnpy3k("In 3.x, mk2arg is removed.")
     import os
     return mkarg(os.path.join(head, x))
 
@@ -75,6 +77,8 @@
 # with backslash.
 #
 def mkarg(x):
+    from warnings import warnpy3k
+    warnpy3k("in 3.x, mkarg is remove.")
     if '\'' not in x:
         return ' \'' + x + '\''
     s = ' "'
diff --git a/Lib/test/test_py3kwarn.py b/Lib/test/test_py3kwarn.py
index 180342b..d5574f4 100644
--- a/Lib/test/test_py3kwarn.py
+++ b/Lib/test/test_py3kwarn.py
@@ -212,6 +212,15 @@
                 mod.walk(".", dumbo, None)
             self.assertEquals(str(w.message), msg)
 
+    def test_commands_members(self):
+        import commands
+        members = {"mk2arg" : 2, "mkarg" : 1, "getstatus" : 1}
+        for name, arg_count in members.items():
+            with catch_warning(record=False):
+                warnings.filterwarnings("error")
+                func = getattr(commands, name)
+                self.assertRaises(DeprecationWarning, func, *([None]*arg_count))
+
 
 def test_main():
     run_unittest(TestPy3KWarnings,
