diff --git a/examples/example_hl.f90 b/examples/example_hl.f90
index eb9cc94ecf7f6aa8c2578c64af9691fa6fbdfea0..0a6728fe1cdfd9d1fa6a27a826113b9fa22f7987 100644
--- a/examples/example_hl.f90
+++ b/examples/example_hl.f90
@@ -87,6 +87,10 @@ PROGRAM example
   dt3 = "1970-01-01T00:00:01"
   WRITE (0,*) dt%to_string(), " == ", dt3%to_string(), ": ", (dt == dt3)
 
+  ! interval assignment with milliseconds
+  td = 360000
+  WRITE (0,*) "interval assignment with milliseconds: ", td%to_string()
+
   ! ------------------------------------------------------------
   ! EXAMPLE FOR ERROR HANDLING
   ! ------------------------------------------------------------
diff --git a/src/libmtime_hl.f90 b/src/libmtime_hl.f90
index 19a480e802437f8101c57c6c1fea22d61a3e8bda..5356ac80490e39f13a78101b19dd7f342b1dc0b8 100644
--- a/src/libmtime_hl.f90
+++ b/src/libmtime_hl.f90
@@ -18,6 +18,8 @@ module mtime_hl
 
   public :: t_datetime, t_timedelta
 
+  INTEGER, PARAMETER :: i8 = SELECTED_INT_KIND(14)   !< at least 8 byte integer
+
   !> Wrapper class for "mtime" data type "datetime".
   !
   !  Avoids, e.g.,  explicit use of POINTERs by the user.
@@ -68,8 +70,9 @@ module mtime_hl
 
     procedure :: to_string        => t_timedelta_to_string
     procedure :: assign_string    => t_timedelta_assign_string
+    procedure :: assign_ms        => t_timedelta_assign_ms
 
-    generic   :: assignment(=)   => assign_string
+    GENERIC   :: ASSIGNMENT(=)   => assign_string, assign_ms
 
   end type t_timedelta
 
@@ -183,6 +186,20 @@ contains
     call deallocateTimedelta(td_tmp)
   end subroutine t_timedelta_assign_string
 
+  ! Assignment operator: this = milliseconds.
+  !
+  SUBROUTINE t_timedelta_assign_ms(this, td_ms)
+    CLASS (t_timedelta), INTENT(out) :: this
+    INTEGER,             INTENT(in)  :: td_ms
+    TYPE(timedelta), POINTER :: td_tmp
+    CHARACTER(len=max_timedelta_str_len) :: td_string
+    CALL getPTStringFromMS(INT(td_ms,i8), td_string)
+    td_tmp => newTimedelta(td_string)
+    this%td = td_tmp
+    this%td%sign = td_tmp%sign
+    call deallocateTimedelta(td_tmp)
+  END SUBROUTINE t_timedelta_assign_ms
+
 end module mtime_hl
 !>
 !! @}