diff --git a/ipaacalib/cpp/src/ipaaca-payload.cc b/ipaacalib/cpp/src/ipaaca-payload.cc
index 4047162a7630dc363318f2b4d62fc008e860fdc3..20cf7d3ad10282a3aeec579883e534a59be5b601 100644
--- a/ipaacalib/cpp/src/ipaaca-payload.cc
+++ b/ipaacalib/cpp/src/ipaaca-payload.cc
@@ -95,10 +95,10 @@ double strict_numerical_interpretation(const std::string& str)
 	char* endptr;
 	auto s = str_trim(str);
 	const char* startptr = s.c_str();
-	long l = strtod(startptr, &endptr);
+	double d = strtod(startptr, &endptr);
 	if ((*endptr)=='\0') {
 		// everything could be parsed
-		return l;
+		return d;
 	} else {
 		throw PayloadTypeConversionError();
 	}