diff --git a/Cython/Compiler/Buffer.py b/Cython/Compiler/Buffer.py
index d755dbafcdd42400b6d4c0e1c11d7e4edeac8baf..232defaa09eea3dcb631083e232b1b770480f179 100644
--- a/Cython/Compiler/Buffer.py
+++ b/Cython/Compiler/Buffer.py
@@ -581,7 +581,7 @@ class GetAndReleaseBufferUtilityCode(object):
         proto_code = output['utility_code_proto']
         env = output.module_node.scope
         cython_scope = env.context.cython_scope
-        
+
         # Search all types for __getbuffer__ overloads
         types = []
         visited_scopes = set()
@@ -631,10 +631,7 @@ def mangle_dtype_name(dtype):
             prefix = "nn_"
         else:
             prefix = ""
-        type_decl = dtype.empty_declaration_code()
-        type_decl = type_decl.replace(" ", "_")
-        type_decl = type_decl.replace("::", "_pyxns_")
-        return prefix + type_decl.replace("[", "_").replace("]", "_")
+        return prefix + dtype.specialization_name()
 
 def get_type_information_cname(code, dtype, maxdepth=None):
     """
diff --git a/tests/bugs.txt b/tests/bugs.txt
index 6fa49dca4d39b85d983ebcc0c2831f2beea8a89f..5d3bb993e086bd6cd3b8831d5aa4f84b8b42a66c 100644
--- a/tests/bugs.txt
+++ b/tests/bugs.txt
@@ -5,7 +5,6 @@ class_attribute_init_values_T18
 unsignedbehaviour_T184
 missing_baseclass_in_predecl_T262
 cfunc_call_tuple_args_T408
-# cpp_structs
 genexpr_iterable_lookup_T600
 generator_expressions_in_class
 for_from_pyvar_loop_T601