diff --git a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std.cs b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std.cs
index 528839e3..b4faa091 100644
--- a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std.cs
+++ b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std.cs
@@ -45,10 +45,6 @@ namespace Std
         }
     }
 
-    public unsafe partial class CompressedPair<_T1, _T2>
-    {
-    }
-
     namespace Allocator
     {
         [StructLayout(LayoutKind.Explicit, Size = 0)]
@@ -151,10 +147,6 @@ namespace Std
             internal global::Std.CompressedPair.__Internal __end_cap_;
         }
     }
-
-    public unsafe partial class Vector<_Tp, _Allocator>
-    {
-    }
 }
 
 namespace Std
@@ -175,10 +167,6 @@ namespace Std
         }
     }
 
-    public unsafe partial class Tree<_Tp, _Compare, _Allocator>
-    {
-    }
-
     namespace TreeEndNode
     {
         [StructLayout(LayoutKind.Explicit, Size = 4)]
@@ -188,10 +176,6 @@ namespace Std
             internal global::System.IntPtr __left_;
         }
     }
-
-    public unsafe partial class TreeEndNode<_Pointer>
-    {
-    }
 }
 
 namespace Std
@@ -205,10 +189,6 @@ namespace Std
             internal global::Std.Tree.__Internal __tree_;
         }
     }
-
-    public unsafe partial class Map<_Key, _Tp, _Compare, _Allocator>
-    {
-    }
 }
 
 namespace Std
diff --git a/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs b/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs
index 07e23365..072f039e 100644
--- a/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs
+++ b/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs
@@ -366,10 +366,6 @@ namespace Std
             internal global::Std.VectorVal.__Internal _Myval2;
         }
     }
-
-    public unsafe partial class CompressedPair<_Ty1, _Ty2, _0>
-    {
-    }
 }
 
 namespace Std
@@ -622,10 +618,6 @@ namespace Std
             }
         }
     }
-
-    public unsafe partial class StringVal<_Val_types>
-    {
-    }
 }
 
 namespace Std
@@ -640,10 +632,6 @@ namespace Std
         }
     }
 
-    public unsafe partial class Vector<_Ty, _Alloc>
-    {
-    }
-
     namespace VectorVal
     {
         [StructLayout(LayoutKind.Explicit, Size = 12)]
@@ -659,10 +647,6 @@ namespace Std
             internal global::System.IntPtr _Myend;
         }
     }
-
-    public unsafe partial class VectorVal<_Val_types>
-    {
-    }
 }
 
 namespace Std
@@ -679,10 +663,6 @@ namespace Std
             internal uint _Mysize;
         }
     }
-
-    public unsafe partial class TreeVal<_Val_types>
-    {
-    }
 }
 
 namespace Std
@@ -696,8 +676,4 @@ namespace Std
             internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_less____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S__Compressed_pair____N_std_S_allocator____N_std_S__Tree_node____N_std_S_pair__1S1_____N_CppSharp_N_CppParser_N_AST_S_Declaration__v___N_std_S__Tree_val____N_std_S__Tree_simple_types__S7__Vb1_Vb1 _Mypair;
         }
     }
-
-    public unsafe partial class Map<_Kty, _Ty, _Pr, _Alloc>
-    {
-    }
 }
diff --git a/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std.cs b/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std.cs
index b8ede8bb..b8aa4c30 100644
--- a/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std.cs
+++ b/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std.cs
@@ -45,10 +45,6 @@ namespace Std
         }
     }
 
-    public unsafe partial class CompressedPair<_T1, _T2>
-    {
-    }
-
     namespace Allocator
     {
         [StructLayout(LayoutKind.Explicit, Size = 0)]
@@ -151,10 +147,6 @@ namespace Std
             internal global::Std.CompressedPair.__Internal __end_cap_;
         }
     }
-
-    public unsafe partial class Vector<_Tp, _Allocator>
-    {
-    }
 }
 
 namespace Std
@@ -175,10 +167,6 @@ namespace Std
         }
     }
 
-    public unsafe partial class Tree<_Tp, _Compare, _Allocator>
-    {
-    }
-
     namespace TreeEndNode
     {
         [StructLayout(LayoutKind.Explicit, Size = 8)]
@@ -188,10 +176,6 @@ namespace Std
             internal global::System.IntPtr __left_;
         }
     }
-
-    public unsafe partial class TreeEndNode<_Pointer>
-    {
-    }
 }
 
 namespace Std
@@ -205,10 +189,6 @@ namespace Std
             internal global::Std.Tree.__Internal __tree_;
         }
     }
-
-    public unsafe partial class Map<_Key, _Tp, _Compare, _Allocator>
-    {
-    }
 }
 
 namespace Std
diff --git a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs
index 9c06cf80..0db71be0 100644
--- a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs
+++ b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs
@@ -127,10 +127,6 @@ namespace Std
         }
     }
 
-    public unsafe partial class Vector<_Tp, _Alloc>
-    {
-    }
-
     namespace VectorBase
     {
         [StructLayout(LayoutKind.Explicit, Size = 24)]
@@ -157,10 +153,6 @@ namespace Std
             }
         }
     }
-
-    public unsafe partial class VectorBase<_Tp, _Alloc>
-    {
-    }
 }
 
 namespace Std
@@ -172,10 +164,6 @@ namespace Std
         {
         }
     }
-
-    public unsafe partial class Less<_Tp>
-    {
-    }
 }
 
 namespace Std
@@ -270,10 +258,6 @@ namespace Std
             internal global::Std.RbTree.__Internal _M_t;
         }
     }
-
-    public unsafe partial class Map<_Key, _Tp, _Compare, _Alloc>
-    {
-    }
 }
 
 namespace Std
diff --git a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Std.cs b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Std.cs
index 253df644..06a1a63e 100644
--- a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Std.cs
+++ b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Std.cs
@@ -127,10 +127,6 @@ namespace Std
         }
     }
 
-    public unsafe partial class Vector<_Tp, _Alloc>
-    {
-    }
-
     namespace VectorBase
     {
         [StructLayout(LayoutKind.Explicit, Size = 24)]
@@ -157,10 +153,6 @@ namespace Std
             }
         }
     }
-
-    public unsafe partial class VectorBase<_Tp, _Alloc>
-    {
-    }
 }
 
 namespace Std
@@ -172,10 +164,6 @@ namespace Std
         {
         }
     }
-
-    public unsafe partial class Less<_Tp>
-    {
-    }
 }
 
 namespace Std
@@ -270,10 +258,6 @@ namespace Std
             internal global::Std.RbTree.__Internal _M_t;
         }
     }
-
-    public unsafe partial class Map<_Key, _Tp, _Compare, _Alloc>
-    {
-    }
 }
 
 namespace Std
diff --git a/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs b/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs
index 714e3b49..d22cf25c 100644
--- a/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs
+++ b/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs
@@ -366,10 +366,6 @@ namespace Std
             internal global::Std.VectorVal.__Internal _Myval2;
         }
     }
-
-    public unsafe partial class CompressedPair<_Ty1, _Ty2, _0>
-    {
-    }
 }
 
 namespace Std
@@ -622,10 +618,6 @@ namespace Std
             }
         }
     }
-
-    public unsafe partial class StringVal<_Val_types>
-    {
-    }
 }
 
 namespace Std
@@ -640,10 +632,6 @@ namespace Std
         }
     }
 
-    public unsafe partial class Vector<_Ty, _Alloc>
-    {
-    }
-
     namespace VectorVal
     {
         [StructLayout(LayoutKind.Explicit, Size = 24)]
@@ -659,10 +647,6 @@ namespace Std
             internal global::System.IntPtr _Myend;
         }
     }
-
-    public unsafe partial class VectorVal<_Val_types>
-    {
-    }
 }
 
 namespace Std
@@ -679,10 +663,6 @@ namespace Std
             internal ulong _Mysize;
         }
     }
-
-    public unsafe partial class TreeVal<_Val_types>
-    {
-    }
 }
 
 namespace Std
@@ -696,8 +676,4 @@ namespace Std
             internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_less____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S__Compressed_pair____N_std_S_allocator____N_std_S__Tree_node____N_std_S_pair__1S1_____N_CppSharp_N_CppParser_N_AST_S_Declaration__v___N_std_S__Tree_val____N_std_S__Tree_simple_types__S7__Vb1_Vb1 _Mypair;
         }
     }
-
-    public unsafe partial class Map<_Kty, _Ty, _Pr, _Alloc>
-    {
-    }
 }
diff --git a/src/Generator/Generators/CSharp/CSharpSources.cs b/src/Generator/Generators/CSharp/CSharpSources.cs
index 71fe176e..608c2d5a 100644
--- a/src/Generator/Generators/CSharp/CSharpSources.cs
+++ b/src/Generator/Generators/CSharp/CSharpSources.cs
@@ -344,7 +344,7 @@ namespace CppSharp.Generators.CSharp
                 if (!(@class.Namespace is Class))
                     GenerateClassTemplateSpecializationInternal(@class);
 
-                if (@class.Specializations.All(s => s.Ignore))
+                if (@class.Specializations.All(s => !s.IsGenerated))
                     return true;
             }