diff --git a/gluturtle.cabal b/gluturtle.cabal
--- a/gluturtle.cabal
+++ b/gluturtle.cabal
@@ -2,7 +2,7 @@
 cabal-version:	>= 1.6
 
 name:		gluturtle
-version:	0.0.13
+version:	0.0.14
 stability:	alpha
 author:		Yoshikuni Jujo <PAF01143@nifty.ne.jp>
 maintainer:	Yoshikuni Jujo <PAF01143@nifty.ne.jp>
diff --git a/src/Graphics/UI/GLUT/Turtle.hs b/src/Graphics/UI/GLUT/Turtle.hs
--- a/src/Graphics/UI/GLUT/Turtle.hs
+++ b/src/Graphics/UI/GLUT/Turtle.hs
@@ -93,7 +93,9 @@
 	windowWidth,
 	windowHeight,
 
-	outputString
+	outputString,
+
+	prompt
 ) where
 
 import Graphics.UI.GLUT.Turtle.Data(shapeTable, speedTable)
@@ -101,7 +103,7 @@
 	TurtleState, direction, visible, undonum, drawed, polyPoints)
 import qualified Graphics.UI.GLUT.Turtle.State as S(position, degrees, pendown)
 import Graphics.UI.GLUT.Turtle.Input(TurtleInput(..), turtleSeries)
-import Graphics.UI.GLUT.Turtle.Move(
+import Graphics.UI.GLUT.Turtle.Move(prompt,
 	Field, Coordinates(..), openField, closeField, waitField,
 	topleft, center, coordinates, fieldSize, forkField, flushField,
 	addLayer, clearLayer, addCharacter, clearCharacter, moveTurtle,
diff --git a/src/Graphics/UI/GLUT/Turtle/Field.hs b/src/Graphics/UI/GLUT/Turtle/Field.hs
--- a/src/Graphics/UI/GLUT/Turtle/Field.hs
+++ b/src/Graphics/UI/GLUT/Turtle/Field.hs
@@ -48,7 +48,9 @@
 	ontimer,
 
 	addLayer,
-	addCharacter
+	addCharacter,
+
+	prompt
 ) where
 
 import Control.Monad
@@ -76,6 +78,10 @@
 
 --------------------------------------------------------------------------------
 
+prompt f p = do
+	writeIORef (fPrompt f) p
+	atomicModifyIORef_ (fString f) (\ls -> init ls ++ [p ++ last ls])
+
 data Coordinates = CoordTopLeft | CoordCenter
 
 data Field = Field{
@@ -95,6 +101,8 @@
 	fFieldWindow :: Window,
 	fConsoleWindow :: Window,
 
+	fPrompt :: IORef String,
+
 	fLayers :: IORef Layers
  }
 
@@ -117,6 +125,8 @@
 	str2 <- newIORef []
 	inputtext <- newIORef $ const $ return True
 
+	prmpt <- newIORef ""
+
 	initialDisplayMode $= [RGBMode, DoubleBuffered]
 	initialWindowSize $= Size (fromIntegral w) (fromIntegral h)
 	wt <- createWindow name
@@ -150,7 +160,8 @@
 		fHeight = h,
 		fInputtext = inputtext,
 		fFieldWindow = wt,
-		fConsoleWindow = wc
+		fConsoleWindow = wc,
+		fPrompt = prmpt
 	 }
 	G.keyboardMouseCallback $= Just (keyboardProc f)
 	return f
@@ -345,10 +356,11 @@
 
 keyboardProc :: Field -> G.Key -> G.KeyState -> G.Modifiers -> G.Position -> IO ()
 keyboardProc f (G.Char '\r') G.Down _ _ = do
+	p <- readIORef $ fPrompt f
 	str <- readIORef (fString f)
 	atomicModifyIORef_ (fString2 f) (reverse str ++)
-	writeIORef (fString f) [""]
-	continue <- ($ concat str) =<< readIORef (fInputtext f)
+	writeIORef (fString f) [p]
+	continue <- ($ drop (length p) $ concat str) =<< readIORef (fInputtext f)
 	unless continue G.leaveMainLoop
 keyboardProc f (G.Char '\b') G.Down _ _ =
 	atomicModifyIORef_ (fString f) $ \s -> case s of
diff --git a/src/Graphics/UI/GLUT/Turtle/Move.hs b/src/Graphics/UI/GLUT/Turtle/Move.hs
--- a/src/Graphics/UI/GLUT/Turtle/Move.hs
+++ b/src/Graphics/UI/GLUT/Turtle/Move.hs
@@ -30,11 +30,13 @@
 	addLayer,
 	addCharacter,
 
-	outputString
+	outputString,
+
+	prompt
 ) where
 
 import Graphics.UI.GLUT.Turtle.State(TurtleState(..), makeShape)
-import Graphics.UI.GLUT.Turtle.Field(
+import Graphics.UI.GLUT.Turtle.Field(prompt,
 	Field, Layer, Character, Coordinates(..),
 	openField, closeField, waitField, coordinates, topleft, center,
 	fieldSize, forkField, flushField, clearLayer,
diff --git a/tests/testGLUT.hs b/tests/testGLUT.hs
--- a/tests/testGLUT.hs
+++ b/tests/testGLUT.hs
@@ -9,6 +9,7 @@
 	rawArgs <- getArgs
 	_args <- initialize prgName rawArgs
 	f <- openField "test" 640 480
+	prompt f "> "
 	t <- newTurtle f
 	oninputtext f (processInput f t)
 --	speed t "slowest"
