diff --git a/coregrind/m_aspacemgr/aspacemgr-common.c b/coregrind/m_aspacemgr/aspacemgr-common.c
index b8d694d..96f5ecf 100644
--- a/coregrind/m_aspacemgr/aspacemgr-common.c
+++ b/coregrind/m_aspacemgr/aspacemgr-common.c
@@ -54,14 +54,7 @@
 __attribute__ ((noreturn))
 void ML_(am_exit)( Int status )
 {
-#  if defined(VGO_linux)
-   (void)VG_(do_syscall1)(__NR_exit_group, status);
-#  endif
-   (void)VG_(do_syscall1)(__NR_exit, status);
-   /* Why are we still alive here? */
-   /*NOTREACHED*/
-   *(volatile Int *)0 = 'x';
-   aspacem_assert(2+2 == 5);
+   VG_(exit_now) (status);
 }
 
 void ML_(am_barf) ( const HChar* what )
diff --git a/coregrind/m_aspacemgr/priv_aspacemgr.h b/coregrind/m_aspacemgr/priv_aspacemgr.h
index 4ef4323..730e536 100644
--- a/coregrind/m_aspacemgr/priv_aspacemgr.h
+++ b/coregrind/m_aspacemgr/priv_aspacemgr.h
@@ -47,6 +47,8 @@
                                  // VG_IS_PAGE_ALIGNED
                                  // VG_PGROUNDDN, VG_PGROUNDUP
 
+#include "pub_core_libcassert.h" // VG_(exit_now)
+
 #include "pub_core_syscall.h"    // VG_(do_syscallN)
                                  // VG_(mk_SysRes_Error)
                                  // VG_(mk_SysRes_Success)
diff --git a/coregrind/m_libcassert.c b/coregrind/m_libcassert.c
index f8a957b..df11fba 100644
--- a/coregrind/m_libcassert.c
+++ b/coregrind/m_libcassert.c
@@ -256,6 +256,15 @@
    }
    exit_called = True;
 
+   VG_(exit_now) (status);
+}
+
+/* Call the appropriate system call and nothing else. This function should
+   be called in places where the dependencies of VG_(exit) need to be
+   avoided. */
+__attribute__ ((__noreturn__))
+void VG_(exit_now)( Int status )
+{
 #if defined(VGO_linux)
    (void)VG_(do_syscall1)(__NR_exit_group, status );
 #elif defined(VGO_darwin)
diff --git a/coregrind/m_libcbase.c b/coregrind/m_libcbase.c
index 61f6fef..56a7039 100644
--- a/coregrind/m_libcbase.c
+++ b/coregrind/m_libcbase.c
@@ -29,8 +29,34 @@
 */
 
 #include "pub_core_basics.h"
+#include "pub_core_libcassert.h"    // VG_(exit_now)
+#include "pub_core_debuglog.h"      // VG_(debugLog)
 #include "pub_core_libcbase.h"
 
+
+/* ---------------------------------------------------------------------
+   Assert machinery for use in this file. VG_(assert) cannot be called
+   here due to cyclic dependencies.
+   ------------------------------------------------------------------ */
+#define libcbase_assert(expr)                             \
+  ((void) ((expr) ? 0 :                                   \
+           (ML_(libcbase_assert_fail)(#expr,              \
+                                __FILE__, __LINE__,       \
+                                __PRETTY_FUNCTION__))))
+
+static void ML_(libcbase_assert_fail)( const HChar *expr,
+                                       const HChar *file,
+                                       Int line, 
+                                       const HChar *fn )
+{
+   VG_(debugLog)(0, "libcbase", 
+                    "Valgrind: FATAL: assertion failed:\n");
+   VG_(debugLog)(0, "libcbase", "  %s\n", expr);
+   VG_(debugLog)(0, "libcbase", "  at %s:%d (%s)\n", file, line, fn);
+   VG_(debugLog)(0, "libcbase", "Exiting now.\n");
+   VG_(exit_now)(1);
+}
+
 /* ---------------------------------------------------------------------
    HChar functions.
    ------------------------------------------------------------------ */
@@ -276,6 +302,8 @@
    zero termination. */
 void VG_(strncpy_safely) ( HChar* dest, const HChar* src, SizeT ndest )
 {
+   libcbase_assert(ndest > 0);
+
    SizeT i = 0;
    while (True) {
       dest[i] = 0;
diff --git a/coregrind/pub_core_libcassert.h b/coregrind/pub_core_libcassert.h
index e9326a4..de4b3cc 100644
--- a/coregrind/pub_core_libcassert.h
+++ b/coregrind/pub_core_libcassert.h
@@ -69,6 +69,10 @@
 /* Exits with status as client exit code. */
 extern void VG_(client_exit)( Int status );
 
+/* Lightweight exit without any dependencies. */
+__attribute__ ((__noreturn__))
+extern void VG_(exit_now)( Int status );
+
 /* Called when some unhandleable client behaviour is detected.
    Prints a msg and aborts. */
 extern void VG_(unimplemented) ( const HChar* msg )
diff --git a/memcheck/tests/unit_libcbase.c b/memcheck/tests/unit_libcbase.c
index 019b67a..33542ce 100644
--- a/memcheck/tests/unit_libcbase.c
+++ b/memcheck/tests/unit_libcbase.c
@@ -3,11 +3,30 @@
 #include <assert.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <stddef.h>
 
 #include "pub_tool_basics.h"  /* UInt et al, needed for pub_tool_vki.h */
 #include "pub_tool_vki.h"
 #include "m_libcbase.c"
 
+/* Provide a stub to not have to pull in m_debuglog.c */
+void VG_(debugLog) ( Int level, const HChar* modulename,
+                                const HChar* format, ... )
+{
+   va_list args;
+   va_start(args, format);
+   fprintf(stderr, "debuglog: %s: ", modulename);
+   vfprintf(stderr, format, args);
+   va_end(args);
+}
+
+/* Provide a stub to not have to pull in m_libcassert.c */
+void VG_(exit_now)( Int status )
+{
+   exit(status);
+}
+
+
 #define  CHECK(x) \
    if (!x) { fprintf(stderr, "failure: %s:%d\n", __FILE__, __LINE__); }
 
