diff --git a/parse.c b/parse.c
index 3a5fbcc..9e31908 100644
--- a/parse.c
+++ b/parse.c
@@ -269,7 +269,7 @@
 }
 
 extern int evaluate_arithmetic_expression(const char *buffer, long long *ival,
-					  double *dval);
+					  double *dval, double implied_units);
 
 #ifdef CONFIG_ARITHMETIC
 /*
@@ -278,7 +278,7 @@
  * original number parsing code.  Once sufficiently sure that the arithmetic
  * code is always getting the right answers, these can be removed.
  */
-static void verify_exp_parser_float(const char *str)
+static void verify_exp_parser_float(const char *str, double implied_units)
 {
 	long long ival;
 	double dval, tmpval;
@@ -286,7 +286,7 @@
 	if (sscanf(str, "%lf", &tmpval) != 1)
 		return;
 
-	if (evaluate_arithmetic_expression(str, &ival, &dval) != 0) {
+	if (evaluate_arithmetic_expression(str, &ival, &dval, implied_units) != 0) {
 		log_info("Arithmetic failed on '%s'\n", str);
 		return;
 	}
@@ -301,8 +301,12 @@
 	int rc;
 	long long ival;
 	double dval;
+	double implied_units = 1.0;
 
-	rc = evaluate_arithmetic_expression(str, &ival, &dval);
+	if (is_seconds)
+		implied_units = 1000000.0;
+
+	rc = evaluate_arithmetic_expression(str, &ival, &dval, implied_units);
 	if (!rc) {
 		if (ival != val)
 			log_info("Arithmetic failed on '%s', expected %lld, got %lld\n",
@@ -324,13 +328,13 @@
 	double dval;
 
 	if (str[0] == '(') {
-		rc = evaluate_arithmetic_expression(str, &ival, &dval);
+		rc = evaluate_arithmetic_expression(str, &ival, &dval, 1.0);
 		if (!rc) {
 			*val = dval;
 			return 1;
 		}
 	} else {
-		verify_exp_parser_float(str);
+		verify_exp_parser_float(str, 1.0);
 	}
 #endif
 	return 1 == sscanf(str, "%lf", val);
@@ -347,6 +351,7 @@
 #ifdef CONFIG_ARITHMETIC
 	long long ival;
 	double dval;
+	double implied_units = 1.0;
 #endif
 
 	len = strlen(str);
@@ -354,8 +359,10 @@
 		return 1;
 
 #ifdef CONFIG_ARITHMETIC
+	if (is_seconds)
+		implied_units = 1000000.0;
 	if (str[0] == '(')
-		rc = evaluate_arithmetic_expression(str, &ival, &dval);
+		rc = evaluate_arithmetic_expression(str, &ival, &dval, implied_units);
 	if (str[0] == '(' && !rc) {
 		if (!kilo && is_seconds)
 			*val = ival / 1000000LL;
