diff --git a/src/generator.cs b/src/generator.cs
index 695cd38c2d..2485ad1dd3 100644
--- a/src/generator.cs
+++ b/src/generator.cs
@@ -1077,8 +1077,13 @@ public partial class Generator : IMemberGatherer {
if (type.IsSubclassOf (TypeManager.NSObject))
return true;
- if (BindThirdPartyLibrary)
+ if (BindThirdPartyLibrary) {
+ var bta = ReflectionExtensions.GetBaseTypeAttribute (type, this);
+ if (bta?.BaseType != null)
+ return IsNSObject (bta.BaseType);
+
return false;
+ }
return type.IsInterface;
}
diff --git a/tests/generator/BGenTests.cs b/tests/generator/BGenTests.cs
index 13dfdf17ec..7845d33ab6 100644
--- a/tests/generator/BGenTests.cs
+++ b/tests/generator/BGenTests.cs
@@ -603,6 +603,12 @@ namespace GeneratorTests
[Test]
public void GHIssue6626 () => BuildFile (Profile.iOS, "ghissue6626.cs");
+ [Test]
+ public void VSTS970507 ()
+ {
+ BuildFile (Profile.iOS, "tests/vsts-970507.cs");
+ }
+
BGenTool BuildFile (Profile profile, params string [] filenames)
{
return BuildFile (profile, true, false, filenames);
diff --git a/tests/generator/generator-tests.csproj b/tests/generator/generator-tests.csproj
index 201c3e40a2..8ff536787c 100644
--- a/tests/generator/generator-tests.csproj
+++ b/tests/generator/generator-tests.csproj
@@ -71,6 +71,7 @@
+
diff --git a/tests/generator/tests/vsts-970507.cs b/tests/generator/tests/vsts-970507.cs
new file mode 100644
index 0000000000..af7fb02147
--- /dev/null
+++ b/tests/generator/tests/vsts-970507.cs
@@ -0,0 +1,18 @@
+using System;
+using Foundation;
+
+namespace NS
+{
+ [BaseType (typeof (NSObject))]
+ interface OutNSObject
+ {
+ [Export ("func:")]
+ void Func (out ErrorObject error);
+ }
+
+ [BaseType (typeof (NSObject))]
+ interface ErrorObject
+ {
+
+ }
+}