diff --git a/Nasal/string.nas b/Nasal/string.nas
index e9367f36d..706e1bc83 100644
--- a/Nasal/string.nas
+++ b/Nasal/string.nas
@@ -288,7 +288,9 @@ var scanf = func(test, format, result) {
 			var sign = 1;
 			if (f == `d` or f == `f` or f == `u`) {
 				var c = str.getc();
-				if (c == `+`) {
+				if (c == nil) {
+					return 0;
+				} elsif (c == `+`) {
 					prefix = 1;
 				} elsif (c == `-`) {
 					if (f == `u`)