diff --git a/inc/Helpers/Parameter.hpp b/inc/Helpers/Parameter.hpp
index ccc55ae9d8e24241afd8176f50ccf373a55130ec..3ce19915bbed6823bb8fe8c76f7e92065ad054b2 100644
--- a/inc/Helpers/Parameter.hpp
+++ b/inc/Helpers/Parameter.hpp
@@ -58,8 +58,18 @@ public:
 		return currentValue;
 	}
 
+	/**
+	 * Converts the value of a parameter to a double.
+	 *
+	 * Some precision may be lost in the process. If the value is not arithmetic,
+	 * then 0 is returned.
+	 */
 	inline double getValueAsDouble() override {
-		return static_cast<double>(currentValue);
+		if constexpr (std::is_arithmetic_v<DataType>) {
+			return static_cast<double>(currentValue);
+		} else {
+			return 0;
+		}
 	}
 
 	/**
diff --git a/test/Time/TimeFormats.cpp b/test/Time/TimeFormatsTests.cpp
similarity index 64%
rename from test/Time/TimeFormats.cpp
rename to test/Time/TimeFormatsTests.cpp
index b5121afd6c60bc51556903dc5ccfc5cbbd44ff14..828cf8854ac36398cc5aa72230076356e446ef8a 100644
--- a/test/Time/TimeFormats.cpp
+++ b/test/Time/TimeFormatsTests.cpp
@@ -1,6 +1,7 @@
 #include "../Services/ServiceTests.hpp"
 #include "Time/Time.hpp"
 #include "Time/UTCTimestamp.hpp"
+#include "Message.hpp"
 #include "catch2/catch_all.hpp"
 
 TEST_CASE("UTC timestamps") {
@@ -25,3 +26,17 @@ TEST_CASE("UTC timestamps") {
 	CHECK(ServiceTests::countErrors() == 6);
 	CHECK(ServiceTests::thrownError(ErrorHandler::InvalidDate));
 }
+
+TEST_CASE("CUC Custom Timestamp as Parameter") {
+	Time::CustomCUC_t time;
+	time.elapsed100msTicks = 999;
+
+	auto parameter = Parameter<Time::CustomCUC_t>(time);
+
+	auto message = Message(0, 0, Message::TC);
+	parameter.appendValueToMessage(message);
+	CHECK(message.dataSize == 8);
+
+	parameter.setValueFromMessage(message);
+	CHECK(time == parameter.getValue());
+}
\ No newline at end of file
diff --git a/test/Time/TimeStamp.cpp b/test/Time/TimeStampTests.cpp
similarity index 100%
rename from test/Time/TimeStamp.cpp
rename to test/Time/TimeStampTests.cpp