diff --git a/ChangeLog b/ChangeLog
index ee9ffe0a2..c9ebb827f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2025-05-23  Dirk Eddelbuettel  <edd@debian.org>
+
+	* inst/include/Rcpp/date_datetime/newDateVector.h: Add default
+	constructor
+	* inst/include/Rcpp/date_datetime/newDatetimeVector.h: Idem
+
+	* inst/tinytest/test_date.R: Add tests
+	* inst/tinytest/cpp/dates.cpp: Idem
+
 2025-05-06  Dirk Eddelbuettel  <edd@debian.org>
 
 	* DESCRIPTION (Version, Date): Roll micro version and date
diff --git a/inst/include/Rcpp/date_datetime/newDateVector.h b/inst/include/Rcpp/date_datetime/newDateVector.h
index 1b380aaab..89e3138ea 100644
--- a/inst/include/Rcpp/date_datetime/newDateVector.h
+++ b/inst/include/Rcpp/date_datetime/newDateVector.h
@@ -2,7 +2,7 @@
 //
 // newDateVector.h: Rcpp R/C++ interface class library -- Date vector support
 //
-// Copyright (C) 2016         Dirk Eddelbuettel
+// Copyright (C) 2016 - 2025  Dirk Eddelbuettel
 //
 // This file is part of Rcpp.
 //
@@ -28,6 +28,10 @@ namespace Rcpp {
 
     class newDateVector : public NumericVector {
     public:
+        newDateVector() : NumericVector() {
+            setClass();
+        }
+
         template <int RTYPE, bool NA, typename VEC>
         newDateVector(const VectorBase<RTYPE,NA,VEC>& vec) : NumericVector(vec) {
             setClass();
diff --git a/inst/include/Rcpp/date_datetime/newDatetimeVector.h b/inst/include/Rcpp/date_datetime/newDatetimeVector.h
index 224cf8929..efbae149c 100644
--- a/inst/include/Rcpp/date_datetime/newDatetimeVector.h
+++ b/inst/include/Rcpp/date_datetime/newDatetimeVector.h
@@ -28,10 +28,14 @@ namespace Rcpp {
 
     class newDatetimeVector : public NumericVector {
     public:
+        newDatetimeVector(const char* tz = "") : NumericVector() {
+            setClass(tz);
+        }
+
         template <int RTYPE, bool NA, typename VEC>
         newDatetimeVector(const VectorBase<RTYPE,NA,VEC>& other, const char* tz = "") :
             NumericVector(other) {
-            setClass(tz); 
+            setClass(tz);
         }
 
         newDatetimeVector(SEXP vec, const char* tz = "") :
diff --git a/inst/tinytest/cpp/dates.cpp b/inst/tinytest/cpp/dates.cpp
index 6c5800e87..a175cc32f 100644
--- a/inst/tinytest/cpp/dates.cpp
+++ b/inst/tinytest/cpp/dates.cpp
@@ -1,8 +1,7 @@
-// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
-//
+
 // dates.cpp: Rcpp R/C++ interface class library -- Date + Datetime tests
 //
-// Copyright (C) 2010 - 2013   Dirk Eddelbuettel and Romain Francois
+// Copyright (C) 2010 - 2025   Dirk Eddelbuettel and Romain Francois
 //
 // This file is part of Rcpp.
 //
@@ -245,4 +244,12 @@ bool has_na_dtv(const Rcpp::DatetimeVector d) {
     return Rcpp::is_true(Rcpp::any(Rcpp::is_na(d)));
 }
 
+// [[Rcpp::export]]
+Rcpp::DateVector default_ctor_datevector() {
+    return Rcpp::DateVector();
+}
 
+// [[Rcpp::export]]
+Rcpp::DatetimeVector default_ctor_datetimevector() {
+    return Rcpp::DatetimeVector();
+}
diff --git a/inst/tinytest/test_date.R b/inst/tinytest/test_date.R
index a24e2668f..0c5ffda01 100644
--- a/inst/tinytest/test_date.R
+++ b/inst/tinytest/test_date.R
@@ -1,5 +1,5 @@
 
-##  Copyright (C) 2010 - 2019   Dirk Eddelbuettel and Romain Francois
+##  Copyright (C) 2010 - 2025   Dirk Eddelbuettel and Romain Francois
 ##
 ##  This file is part of Rcpp.
 ##
@@ -241,3 +241,15 @@ dvt <- Sys.time() + 0:2
 expect_true(has_na_dtv(dvt) == FALSE, info="DatetimeVector.NAtest.withoutNA")
 dvt[1] <- NA
 expect_true(has_na_dtv(dvt) == TRUE, info="DatetimeVector.NAtest.withNA")
+
+## default ctor: date
+dv <- default_ctor_datevector()
+expect_true(inherits(dv, "Date"))
+expect_equal(length(dv), 0L)
+expect_equal(dv, as.Date(double(), origin="1970-01-01")) # origin for R < 4.3.0
+
+## default ctor: datetime
+dtv <- default_ctor_datetimevector()
+expect_true(inherits(dtv, "POSIXct"))
+expect_equal(length(dtv), 0L)
+expect_equal(dtv, as.POSIXct(double(), origin="1970-01-01"))  # origin for R < 4.3.0