diff --git a/tests/manual/cplusplus/main.cpp b/tests/manual/cplusplus/main.cpp
index 019683f0615f2e301046256a8f75d5afdcd4108e..b8a8e328708803de06297b5e659bb3cb093a371e 100644
--- a/tests/manual/cplusplus/main.cpp
+++ b/tests/manual/cplusplus/main.cpp
@@ -49,6 +49,7 @@
 #include <cstdio>
 #include <cstdlib>
 #include <iostream>
+#include <sstream>
 
 class Rewrite
 {
@@ -194,6 +195,19 @@ protected:
 
         return false;
     }
+
+    virtual bool visit(CppCastExpressionAST *ast) {
+        // Replace the C++ cast expression (e.g. static_cast<foo>(a)) with
+        // the one generated by the pretty printer.
+        std::ostringstream o;
+        PrettyPrinter pp(control(), o);
+        pp(ast);
+        remove(ast->firstToken(), ast->lastToken());
+        const std::string str = o.str();
+        insertTextBefore(ast->firstToken(), str.c_str());
+        insertTextBefore(ast->firstToken(), "/* #REF# beautiful cast */ ");
+        return false;
+    }
 };
 
 int main(int argc, char *argv[])