Index: java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/J2EEDataSourceTest.java
===================================================================
--- java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/J2EEDataSourceTest.java	(revision 637869)
+++ java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/J2EEDataSourceTest.java	(working copy)
@@ -143,6 +143,7 @@
         suite.addTest(new J2EEDataSourceTest("testClosedCPDSConnection"));
         suite.addTest(new J2EEDataSourceTest("testClosedXADSConnection"));
         suite.addTest(new J2EEDataSourceTest("testSetSchemaInXAConnection"));
+        suite.addTest(new J2EEDataSourceTest("testPooledReuseOnClose"));
         return suite;
     }
 
@@ -170,11 +171,6 @@
     private static Test getEmbeddedSuite(String postfix) {
         TestSuite suite = new TestSuite("Embedded" + postfix);
         suite.addTest(new J2EEDataSourceTest("testDSRequestAuthentication"));
-        // Due to a bug following cannot be run for client - DERBY-3379
-        // To run this fixture with client, add to getClientSuite(),
-        // when DERBY-3379 is fixed, remove from here (and client) and
-        // move to baseSuite.
-        suite.addTest(new J2EEDataSourceTest("testPooledReuseOnClose"));
         // when DERBY-2498 gets fixed, move this one to baseSuite
         suite.addTest(new J2EEDataSourceTest("testJira95pds"));
         // Following cannot run with client because of DERBY-2533; it hangs
Index: java/client/org/apache/derby/client/ClientPooledConnection.java
===================================================================
--- java/client/org/apache/derby/client/ClientPooledConnection.java	(revision 637869)
+++ java/client/org/apache/derby/client/ClientPooledConnection.java	(working copy)
@@ -335,6 +335,10 @@
             physicalConnection_.agent_.logWriter_.traceEntry(this, "recycleConnection");
         }
 
+        // Null out the reference to the logical connection that is currently
+        // being closed.
+        this.logicalConnection_ = null;
+
         for (Iterator e = listeners_.iterator(); e.hasNext();) {
             ConnectionEventListener listener =
                     (ConnectionEventListener)e.next();
@@ -368,8 +372,8 @@
     }
 
     /**
-     * Used by <code>LogicalConnection.close</code> when it disassociates itself
-     * from the pooled connection.
+     * Used by {@code LogicalConnection.close} in some circumstances when
+     * it disassociates itself from the pooled connection.
      */
     public synchronized void nullLogicalConnection() {
         logicalConnection_ = null;
