diff --git a/Network/CommandList.hs b/Network/CommandList.hs
--- a/Network/CommandList.hs
+++ b/Network/CommandList.hs
@@ -216,4 +216,5 @@
   mkRet ('d':rest) = last (words rest) ++ "/"
   mkRet ('-':rest) = last (words rest)
   mkRet ('l':rest) = last (words rest)
+  mkRet ('c':rest) = last (words rest)
   mkRet _          = error "myNlst error"
diff --git a/Network/Console.hs b/Network/Console.hs
--- a/Network/Console.hs
+++ b/Network/Console.hs
@@ -22,7 +22,7 @@
 import Prelude hiding (catch)
 import Control.Monad.Trans
 import System.IO
-import Data.List (isPrefixOf)
+import Data.List (isPrefixOf, isSuffixOf)
 import Control.Exception hiding (catch)
 import Data.Char (isSpace)
 
@@ -46,7 +46,8 @@
 mkComp :: (String -> IO [ String ]) -> Comp
 mkComp f = Comp $ \(rts,_) -> do
   ss <-f $ reverse rts
-  return (dropWhile (not.isSpace) rts, map (\s -> Completion s s True) ss)
+  return (dropWhile (not.isSpace) rts, map (\s -> Completion s s $ notIsDir s) ss)
+  where notIsDir fp = not $ isSuffixOf "/" fp
 {-
 mkComp f = Comp $ completeWord Nothing " " $
   \str -> fmap (map (\s -> Completion s s True)) $ f str
@@ -66,7 +67,7 @@
 
 compFilename :: String -> IO [ String ]
 compFilename inp = do
-  fs <- fmap (map replacement) $ listFiles "./"
+  fs <- fmap (map replacement) $ listFiles inp
   return $ filter (isPrefixOf inp) fs
 
 compPrint :: Show a => a -> CompIO ()
diff --git a/yjftp.cabal b/yjftp.cabal
--- a/yjftp.cabal
+++ b/yjftp.cabal
@@ -1,5 +1,5 @@
 Name:		yjftp
-Version:	0.3.6.1
+Version:	0.3.6.2
 License:	GPL
 License-file:	LICENSE
 Author:		Yoshikuni Jujo
diff --git a/yjftp.hs b/yjftp.hs
--- a/yjftp.hs
+++ b/yjftp.hs
@@ -16,8 +16,8 @@
 			     "list directory contents\n\toption -l list detail of contents",
 			     compLs))
  , ("cd",    (changeDirectoryFTP, "change directory in remote", compRemoteFile))
- , ("lcd",   (changeDirectoryLocal, "change directory in local", const filenameCompletionFunction))
- , ("put",   (putFileFTP, "upload file", const filenameCompletionFunction))
+ , ("lcd",   (changeDirectoryLocal, "change directory in local", const compFilename))
+ , ("put",   (putFileFTP, "upload file", const compFilename))
  , ("get",   (getFileFTP, "download file", compRemoteFile))
  , ("cat",   (showFileFTP, "show remote file", compRemoteFile))
  , ("rm",    (removeFileFTP, "delete remote file", compRemoteFile))
