=== t/lib/DBICTest/Schema/DefaultJoin.pm
==================================================================
--- t/lib/DBICTest/Schema/DefaultJoin.pm	(revision 8116)
+++ t/lib/DBICTest/Schema/DefaultJoin.pm	(local)
@@ -0,0 +1,34 @@
+package # hide from PAUSE 
+    DBICTest::Schema::DefaultJoin;
+
+use base 'DBIx::Class::Core';
+
+__PACKAGE__->table('self_join');
+
+__PACKAGE__->add_columns(
+  'id' => {
+    data_type => 'integer',
+    is_auto_increment => 1,
+  },
+  'joinid' => {
+    data_type => 'integer',
+    is_nullable => 0,
+    is_auto_increment => 0,
+  },
+  'name' => {
+    data_type => 'varchar',
+    size      => 100,
+    default_value => 'i am my own best friend',
+    is_nullable => 0,
+  },
+);
+__PACKAGE__->set_primary_key('id');
+
+__PACKAGE__->has_many('selves', 'DBICTest::Schema::DefaultJoin',
+    { 
+        'foreign.joinid' => 'self.joinid',
+        'foreign.name'   => 'self.name'
+    }
+);
+
+1;
=== t/lib/DBICTest/Schema.pm
==================================================================
--- t/lib/DBICTest/Schema.pm	(revision 8116)
+++ t/lib/DBICTest/Schema.pm	(local)
@@ -17,6 +17,7 @@
   #dummy
   Track
   Tag
+
   /,
   { 'DBICTest::Schema' => [qw/
     LinerNotes
@@ -42,7 +43,7 @@
   ),
   qw/SelfRefAlias TreeLike TwoKeyTreeLike Event EventTZ NoPrimaryKey/,
   qw/Collection CollectionObject TypedObject Owners BooksInLibrary/,
-  qw/ForceForeign/,
+  qw/ForceForeign DefaultJoin/,
 );
 
 sub sqlt_deploy_hook {
=== t/join_on_default_value.t
==================================================================
--- t/join_on_default_value.t	(revision 8116)
+++ t/join_on_default_value.t	(local)
@@ -0,0 +1,31 @@
+use strict;
+use warnings;
+
+use Test::More;
+use Test::Exception;
+use lib qw(t/lib);
+use DBICTest;
+
+my $schema = DBICTest->init_schema();
+
+plan tests => 6;
+
+my $obj_1 = $schema->resultset("DefaultJoin")
+    ->create({ joinid => "1" });
+ok($obj_1, 'created first object');
+my $obj_2 = $schema->resultset("DefaultJoin")
+    ->create({ joinid => "1" });
+ok($obj_2, 'created second object');
+
+eval { $obj_1->selves->count };
+ok( !$@, 'join condition threw exception' );
+
+$obj_1 = $schema->resultset("DefaultJoin")
+    ->create({ joinid => "1", name => "wee" });
+ok($obj_1, 'created first object');
+$obj_2 = $schema->resultset("DefaultJoin")
+    ->create({ joinid => "1", name => "wee" });
+ok($obj_2, 'created second object');
+
+eval { $obj_1->selves->count };
+ok( !$@, 'join condition threw exception' );
