diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 64d83e8970bae7255017a55edfeb4d08ac62c162..fa1c7f185bc84d0e807c36458f5d0ba2b255b94a 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,13 @@
+2000-05-08  Nathan Sidwell  <nathan@codesourcery.com>
+
+	* tinfo.cc (__dynamic_cast): Use a reinterpret_cast. Fix
+	offsetof expansion.
+
+2000-05-08  Branko Cibej  <branko.cibej@hermes.si>
+
+	* inc/cxxabi.h:  Fix typos in comment.
+	(__base_class_info::__offset): Use a static_cast.
+
 2000-05-07  Nathan Sidwell  <nathan@codesourcery.com>
 
 	* inc/cxxabi.h: Use __SIZE_TYPE_ and __PTRDIFF_TYPE__ in place
diff --git a/gcc/cp/inc/cxxabi.h b/gcc/cp/inc/cxxabi.h
index 9bda48459f8e7b9b4b3f54a423b0d144ade644f6..55b01b7484180d85bbe8d9e4d18db09bae7ed405 100644
--- a/gcc/cp/inc/cxxabi.h
+++ b/gcc/cp/inc/cxxabi.h
@@ -49,11 +49,11 @@
 
 #ifdef __cplusplus
 
-// We use the compiler builtins __SIZE__TYPE__ and __PTRDIFF_TYPE__ instead of
+// We use the compiler builtins __SIZE_TYPE__ and __PTRDIFF_TYPE__ instead of
 // std::size_t and std::ptrdiff_t respectively. This makes us independant of
 // the conformance level of <cstddef> and whether -fhonor-std was supplied.
 // <cstddef> is not currently available during compiler building anyway.
-// including <stddef.h> would be wrong, as that would rudely place size_t in
+// Including <stddef.h> would be wrong, as that would rudely place size_t in
 // the global namespace.
 
 #include <typeinfo>
@@ -215,7 +215,7 @@ public:
     { 
       // This shift, being of a signed type, is implementation defined. GCC
       // implements such shifts as arithmetic, which is what we want.
-      return __PTRDIFF_TYPE__ (vmi_offset_flags) >> offset_shift;
+      return static_cast<__PTRDIFF_TYPE__> (vmi_offset_flags) >> offset_shift;
     }
 };
 
diff --git a/gcc/cp/tinfo.cc b/gcc/cp/tinfo.cc
index 1f4ef4142996f3fde805e5330ce942a289ec1475..8d87f70768c62a2421a462c7741c40bfd68774ed 100644
--- a/gcc/cp/tinfo.cc
+++ b/gcc/cp/tinfo.cc
@@ -1146,7 +1146,8 @@ __dynamic_cast (const void *src_ptr,    // object started from
   const void *vtable = *static_cast <const void *const *> (src_ptr);
   const vtable_prefix *prefix =
       adjust_pointer <vtable_prefix>
-        (vtable, -__PTRDIFF_TYPE__(static_cast <vtable_prefix *> (NULL)->origin));
+        (vtable, -reinterpret_cast <__PTRDIFF_TYPE__>
+          (&static_cast <vtable_prefix *> (NULL)->origin));
   const void *whole_ptr =
       adjust_pointer <void> (src_ptr, prefix->whole_object);
   const __class_type_info *whole_type = prefix->whole_type;