diff --git a/mps/code/misc.h b/mps/code/misc.h
index 3d0f259ff72..c07647f54db 100644
--- a/mps/code/misc.h
+++ b/mps/code/misc.h
@@ -156,13 +156,12 @@ typedef const struct SrcIdStruct {
*
* Use these values for unused pointer, size closure arguments and
* check them in the callback or visitor.
- *
- * We use PointerAdd rather than a cast to avoid "warning C4306: 'type
- * cast' : conversion from 'unsigned int' to 'Pointer' of greater
- * size" on platform w3i6mv.
+ *
+ * Ensure that they have high bits set on 64-bit platforms for maximum
+ * unusability.
*/
-#define UNUSED_POINTER PointerAdd(0, 0xB60405ED) /* PointeR UNUSED */
-#define UNUSED_SIZE ((Size)0x520405ED) /* SiZe UNUSED */
+#define UNUSED_POINTER (Pointer)((Word)~0xFFFFFFFF | (Word)0xB60405ED) /* PointeR UNUSED */
+#define UNUSED_SIZE ((Size)~0xFFFFFFFF | (Size)0x520405ED) /* SiZe UNUSED */
/* PARENT -- parent structure
diff --git a/mps/code/mpscmv.h b/mps/code/mpscmv.h
index aeb163aec4a..5c6522ae1e9 100644
--- a/mps/code/mpscmv.h
+++ b/mps/code/mpscmv.h
@@ -9,8 +9,9 @@
#include "mps.h"
-#define mps_mv_free_size(pool) (mps_pool_free_size(pool))
-#define mps_mv_size(pool) (mps_pool_total_size(pool))
+#define mps_mv_free_size mps_pool_free_size
+#define mps_mv_size mps_pool_total_size
+
extern mps_class_t mps_class_mv(void);
extern mps_class_t mps_class_mv_debug(void);
diff --git a/mps/code/mpscmv2.h b/mps/code/mpscmv2.h
index 8586a639901..8925d38d3b3 100644
--- a/mps/code/mpscmv2.h
+++ b/mps/code/mpscmv2.h
@@ -1,27 +1,24 @@
/* mpscmv2.h: MEMORY POOL SYSTEM CLASS "MVT"
*
* $Id$
- * Copyright (c) 2001 Ravenbrook Limited. See end of file for license.
+ * Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license.
+ *
+ * The MVT pool class used to be known as "MV2" in some places: this
+ * header provides backwards compatibility for prograns that included
+ * it under its old name.
*/
#ifndef mpscmv2_h
#define mpscmv2_h
-#include "mps.h"
-
-extern mps_class_t mps_class_mvt(void);
-
-/* The mvt pool class supports two extensions to the pool protocol:
- size and free_size. */
-extern size_t mps_mvt_free_size(mps_pool_t mps_pool);
-extern size_t mps_mvt_size(mps_pool_t mps_pool);
+#include "mpscmvt.h"
#endif /* mpscmv2_h */
/* C. COPYRIGHT AND LICENSE
*
- * Copyright (C) 2001-2002 Ravenbrook Limited .
+ * Copyright (C) 2001-2014 Ravenbrook Limited .
* All rights reserved. This is an open source license. Contact
* Ravenbrook for commercial licensing options.
*
diff --git a/mps/code/mpscmvff.h b/mps/code/mpscmvff.h
index ec1eb22eff9..ca1fbcae697 100644
--- a/mps/code/mpscmvff.h
+++ b/mps/code/mpscmvff.h
@@ -19,8 +19,9 @@ extern const struct mps_key_s _mps_key_mvff_first_fit;
#define MPS_KEY_MVFF_FIRST_FIT (&_mps_key_mvff_first_fit)
#define MPS_KEY_MVFF_FIRST_FIT_FIELD b
-#define mps_mvff_free_size(pool) (mps_pool_free_size(pool))
-#define mps_mvff_size(pool) (mps_pool_total_size(pool))
+#define mps_mvff_free_size mps_pool_free_size
+#define mps_mvff_size mps_pool_total_size
+
extern mps_class_t mps_class_mvff(void);
extern mps_class_t mps_class_mvff_debug(void);
diff --git a/mps/code/mpscmvt.h b/mps/code/mpscmvt.h
index 82792eb3f55..9490d5ffb77 100644
--- a/mps/code/mpscmvt.h
+++ b/mps/code/mpscmvt.h
@@ -16,30 +16,10 @@ extern const struct mps_key_s _mps_key_mvt_frag_limit;
#define MPS_KEY_MVT_FRAG_LIMIT (&_mps_key_mvt_frag_limit)
#define MPS_KEY_MVT_FRAG_LIMIT_FIELD d
-/* The mvt pool class has five extra parameters to mps_pool_create:
- * mps_res_t mps_pool_create(mps_pool_t * pool, mps_arena_t arena,
- * mps_class_t mvt_class,
- * size_t minimum_size,
- * size_t mean_size,
- * size_t maximum_size,
- * mps_count_t reserve_depth
- * mps_count_t fragmentation_limit);
- * minimum_, mean_, and maximum_size are the mimimum, mean, and
- * maximum (typical) size of objects expected to be allocated in the
- * pool. reserve_depth is a measure of the expected hysteresis of the
- * object population. fragmentation_limit is a percentage (between 0
- * and 100): if the free space managed by the pool exceeds the
- * specified percentage, the pool will resort to a "first fit"
- * allocation policy.
- */
extern mps_class_t mps_class_mvt(void);
-/* The mvt pool class formerly supported two extensions to the pool
- protocol: size and free_size. These are deprecated in favour of the
- generic pool function. */
-
-#define mps_mvt_free_size(pool) (mps_pool_free_size(pool))
-#define mps_mvt_size(pool) (mps_pool_total_size(pool))
+#define mps_mvt_free_size mps_pool_free_size
+#define mps_mvt_size mps_pool_total_size
#endif /* mpscmvt_h */
diff --git a/mps/code/poolabs.c b/mps/code/poolabs.c
index 16847a5a746..a9dde8f4f74 100644
--- a/mps/code/poolabs.c
+++ b/mps/code/poolabs.c
@@ -681,7 +681,7 @@ Size PoolNoSize(Pool pool)
{
AVERT(Pool, pool);
NOTREACHED;
- return 0;
+ return UNUSED_SIZE;
}