diff --git a/Egison.hs b/Egison.hs
--- a/Egison.hs
+++ b/Egison.hs
@@ -8,6 +8,7 @@
 import qualified Text.Parsec.Token as P
 import Text.Parsec.Language (haskellDef)
 import IO hiding (try)
+import Paths_egison
 
 welcomeMsg :: String
 welcomeMsg = "Egison, version 1.0.2 : http://hagi.is.s.u-tokyo.ac.jp/~egi/egison/\nWelcome to Egison Interpreter!\n"
@@ -122,7 +123,8 @@
   val <- eval [topFrame] expr
   ret <- liftIO (showValue val)
   return (ret ++ "\n")
-executeTopExpression defs (Load filename) = do
+executeTopExpression defs (Load libname) = do
+  filename <- liftIO (getDataFileName libname)
   mStr <- liftIO (readEgisonFile filename)
   case mStr of
     Nothing -> throwError (Default "load error")
@@ -132,6 +134,16 @@
                                           topExpr:rest -> do executeTopExpression defs topExpr
                                                              loop rest
                      in loop topExprs
+executeTopExpression defs (LoadFile filename) = do
+  mStr <- liftIO (readEgisonFile filename)
+  case mStr of
+    Nothing -> throwError (Default "load-file error")
+    Just str -> do topExprs <- readTopExpressionList str
+                   let loop topExprs2 = case topExprs2 of
+                                          [] -> return (filename ++ " loaded\n")
+                                          topExpr:rest -> do executeTopExpression defs topExpr
+                                                             loop rest
+                     in loop topExprs
 executeTopExpression defs Execute = do
   topFrame <- makeTopFrame defs
   mainFn <- eval [topFrame] (VariableExp "main" [])
@@ -173,6 +185,7 @@
 data TopExpression = Define String Expression
                    | Test Expression
                    | Load String
+                   | LoadFile String
                    | Execute
 
 data Expression = CharacterExp Char
@@ -551,6 +564,11 @@
                                    filename <- stringLiteral
                                    spaces
                                    return (Load filename)
+                            <|> do try (string "load-file")
+                                   spaces
+                                   filename <- stringLiteral
+                                   spaces
+                                   return (LoadFile filename)
                                    ) <?> "top expression"
 
 parseExpression :: Parser Expression
@@ -786,6 +804,7 @@
 showTopExpression (Define name expr) = "(define $" ++ name ++ " " ++ show expr ++ ")"
 showTopExpression (Test expr) = "(test " ++ show expr ++ ")"
 showTopExpression (Load expr) = "(load " ++ show expr ++ ")"
+showTopExpression (LoadFile expr) = "(load-file " ++ show expr ++ ")"
 showTopExpression Execute = "(execute)"
 
 instance Show TopExpression where show = showTopExpression
diff --git a/egison.cabal b/egison.cabal
--- a/egison.cabal
+++ b/egison.cabal
@@ -7,7 +7,7 @@
 -- The package version. See the Haskell package versioning policy
 -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for
 -- standards guiding when and how versions should be incremented.
-Version:             1.0.2
+Version:             1.0.3
 
 -- A short (one-line) description of the package.
 Synopsis:            An Interpreter for the Programming Language Egison
@@ -63,7 +63,7 @@
   Build-depends:       base >= 4.0 && < 5, haskell98, mtl, parsec >= 3.0
   
   -- Modules not exported by this package.
-  -- Other-modules:       
+  Other-modules:       Paths_egison
   
   -- Extra tools (e.g. alex, hsc2hs, ...) needed to build the source.
   -- Build-tools:         
