diff --git a/src/elements/script.rs b/src/elements/script.rs
index 94b8f974..d180fc48 100644
--- a/src/elements/script.rs
+++ b/src/elements/script.rs
@@ -79,23 +79,12 @@ impl Script {
     
             match ans.check_nest(feeder){
                 Status::NormalEnd => return Ok(Some(ans)),
+                Status::NeedMoreLine => feeder.feed_additional_line(core)?,
                 Status::UnexpectedSymbol(s) => {
-                    eprintln!("Unexpected token: {}", s);
-                    let e = ParseError::UnexpectedSymbol(s.clone());
-                    e.print(core);
                     core.db.set_param("?", "2").unwrap();
-                    feeder.consume(feeder.len());
-                    return Err(e);
-                },
-                Status::NeedMoreLine => {
-                    if ! feeder.feed_additional_line(core).is_ok() {
-                        break;
-                    }
+                    return Err(ParseError::UnexpectedSymbol(s.clone()));
                 },
             }
         }
-
-        feeder.consume(feeder.len());
-        Ok(None)
     }
 }
diff --git a/src/main.rs b/src/main.rs
index 2f966f74..fb07fbe3 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -53,9 +53,18 @@ fn main_loop(core: &mut ShellCore) {
             _ => break,
         }
 
-        if let Ok(Some(mut s)) = Script::parse(&mut feeder, core){
-            if let Err(e) = s.exec(core) {
+        match Script::parse(&mut feeder, core){
+            Ok(Some(mut s)) => {
+                if let Err(e) = s.exec(core) {
+                    e.print(core);
+                    break;
+                }
+            }
+            Ok(None) => {},
+            Err(e) => {
+                feeder.consume(feeder.len());
                 e.print(core);
+                break;
             }
         }
         core.sigint.store(false, Relaxed);
diff --git a/src/utils/exit.rs b/src/utils/exit.rs
index 6786370c..9ef97f01 100644
--- a/src/utils/exit.rs
+++ b/src/utils/exit.rs
@@ -1,5 +1,5 @@
 //SPDX-FileCopyrightText: 2024 Ryuichi Ueda ryuichiueda@gmail.com
-//PDX-License-Identifier: BSD-3-Clause
+//SPDX-License-Identifier: BSD-3-Clause
 
 use crate::ShellCore;
 use std::process;