diff --git a/src/libmtime_hl.f90 b/src/libmtime_hl.f90
index f15c1150665b2aaf8458a4a408c12eef331c1d22..19a480e802437f8101c57c6c1fea22d61a3e8bda 100644
--- a/src/libmtime_hl.f90
+++ b/src/libmtime_hl.f90
@@ -29,26 +29,7 @@ module mtime_hl
     type(datetime) :: dt
 
   contains
-
-    ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-    !
-    ! The use of "final" is "potentially" dangerous - it is supported,
-    ! e.g., on gfortran 4.9 only partially.  (see
-    ! http://fortranwiki.org/fortran/show/Fortran+2003+status)
-    !
-    ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-    !
-    ! final is required to prevent memory leaks, when variables go out
-    ! of scope. So this routine will get called only in this case and
-    ! the call is introduced by the compiler - nobody will see those. 
-    ! So I will reenable the final but not for gcc odler than gcc5.
-    !
-    ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-#if __GNUC__ > 4
-    final :: t_datetime_deallocate
-#endif
-    
+   
     procedure :: to_string                 => t_datetime_to_string
     procedure :: assign_string             => t_datetime_assign_string
     procedure :: add_timedelta             => t_datetime_add_timedelta
@@ -85,9 +66,6 @@ module mtime_hl
 
   contains
 
-#if __GNUC__ > 4
-    final :: t_timedelta_deallocate
-#endif
     procedure :: to_string        => t_timedelta_to_string
     procedure :: assign_string    => t_timedelta_assign_string
 
@@ -97,29 +75,6 @@ module mtime_hl
 
 contains 
 
-  ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-  !
-  ! In my opinion, this deallocate does not make sense, since the
-  ! this%dt data member is a simply derived type (with C conforming
-  ! kind values). The necessary deallocates happen in the wrapper
-  ! routines, where a POINTER variable is used and its contents are
-  ! copied to this%dt.
-  !
-  ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-  !
-  ! You're right, but this routine is just the implementation of
-  ! final, and no user should call it explicitly! BUt of course,
-  ! you need to make the call available.
-  !
-  ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-  ! 
-  subroutine t_datetime_deallocate(this)
-    type(t_datetime), target, intent(inout) :: this
-    type(datetime), pointer :: tmp_dt
-    tmp_dt = this%dt
-    if (associated(tmp_dt)) call deallocateDatetime(tmp_dt)
-  end subroutine t_datetime_deallocate
-  
   ! Convert t_datetime object to string.
   !
   function t_datetime_to_string(this)
@@ -204,13 +159,6 @@ contains
     class (t_datetime),  intent(in) :: dt
     t_datetime_greater_or_equal = (this%dt >= dt%dt)
   end function t_datetime_greater_or_equal
-
-  subroutine t_timedelta_deallocate(this)
-    type(t_timedelta), intent(inout) :: this
-    type(timedelta), pointer :: tmp_td
-    tmp_td = this%td
-    if (associated(tmp_td)) call deallocateTimedelta(tmp_td)
-  end subroutine t_timedelta_deallocate
   
   ! Convert t_timedelta object to string.
   !