diff --git a/markdown2svg.cabal b/markdown2svg.cabal
--- a/markdown2svg.cabal
+++ b/markdown2svg.cabal
@@ -2,7 +2,7 @@
 cabal-version:	>=1.8
 
 name:		markdown2svg
-version:	0.0.1.25
+version:	0.0.1.26
 stability:	Experimental
 author:		Yoshikuni Jujo <PAF01143@nifty.ne.jp>
 maintainer:	Yoshikuni Jujo <PAF01143@nifty.ne.jp>
@@ -15,6 +15,8 @@
 description:
 	Usage: markdown2svg foo.md
 	.
+	Usage: markdown2svg --help
+	.
 	Now. Implemented only following features.
 	.
 	paragraph, header, code, list, image
@@ -31,13 +33,13 @@
 source-repository	this
   type:		git
   location:	git://github.com/YoshikuniJujo/markdown2svg.git
-  tag:		0.0.1.25
+  tag:		0.0.1.26
 
 executable markdown2svg
   hs-source-dirs:	src
   main-is:		markdown2svg.hs
   build-depends:
     base > 3 && < 5, yjsvg, papillon, filepath, monads-tf, markdown-pap,
-    binary-file, png-file, directory
+    binary-file, png-file, directory, Cabal
   ghc-options:		-Wall
   other-modules:	SVG, SepWords, Image, Image.PNG, Image.JPG, Image.SVG
diff --git a/src/markdown2svg.hs b/src/markdown2svg.hs
--- a/src/markdown2svg.hs
+++ b/src/markdown2svg.hs
@@ -1,6 +1,7 @@
 import Control.Applicative
 import Control.Monad
 import Data.Maybe
+import Data.List
 import System.Environment
 import System.FilePath
 import System.Console.GetOpt
@@ -11,18 +12,22 @@
 import Text.Markdown.Pap (parse)
 import SVG
 
+import Paths_markdown2svg (version)
+import qualified Distribution.Version as D (Version(..))
+
 main :: IO ()
 main = do
 	(opts, ~[fp], emsgs) <- getOpt Permute options <$> getArgs
 	mapM_ putStrLn emsgs
 	when (not $ null emsgs) exitFailure
-	case opts of
-		[Help] -> do
-			putStr $ usageInfo
-				"Usage: markdown2svg [OPTION] foo.md"
-				options
-			exitSuccess
-		_ -> return ()
+	when (isVersion opts) $ do
+		putStrLn $ "markdown2svg " ++ showVersion version
+		exitSuccess
+	when (isHelp opts) $ do
+		putStr $ usageInfo
+			"Usage: markdown2svg [OPTION] foo.md"
+			options
+		exitSuccess
 	let	size = getSizeR opts * 0.3
 		dir = getDir opts
 		idir = getIDir opts
@@ -52,13 +57,15 @@
 	| ImageDir FilePath
 	| Font FontType String
 	| Help
-	deriving Show
+	| Version
+	deriving (Eq, Show)
 
 data FontType = Header | Normal | Code deriving (Eq, Show)
 
 options :: [OptDescr Option]
 options = [
 	Option "?h" ["help"] (NoArg Help) "help message",
+	Option "" ["version"] (NoArg Version) "print version",
 	Option "d" ["output-dir"] (ReqArg Dir "output_directory") "set ouput directory",
 	Option "s" ["size-ratio"] (ReqArg (Size . read) "size_ratio") "set size ratio",
 	Option "i" ["image-dir"] (ReqArg ImageDir "image_directory") "set image directory",
@@ -66,6 +73,10 @@
 	Option "" ["normal-font"] (ReqArg (Font Normal) "normal_font") "set normal font",
 	Option "" ["code-font"] (ReqArg (Font Code) "code_font") "set code font" ]
 
+isVersion, isHelp :: [Option] -> Bool
+isVersion = (Version `elem`)
+isHelp = (Help `elem`)
+
 getDir, getIDir :: [Option] -> Maybe FilePath
 getDir [] = Nothing
 getDir (Dir d : _) = Just d
@@ -102,3 +113,6 @@
 
 copy :: FilePath -> FilePath -> [FilePath] -> IO ()
 copy s d f = zipWithM_ copyFile (map (s </>) f) (map (d </>) f)
+
+showVersion :: D.Version -> String
+showVersion D.Version{ D.versionBranch = vb } = intercalate "." $ map show vb
