diff --git a/storage/ndb/src/ndbapi/Ndbif.cpp b/storage/ndb/src/ndbapi/Ndbif.cpp
index b0692eb82366d27312da84411b87ae725226732c..7799a71749e31fc5da6df370b1a00c02d33ab717 100644
--- a/storage/ndb/src/ndbapi/Ndbif.cpp
+++ b/storage/ndb/src/ndbapi/Ndbif.cpp
@@ -1435,8 +1435,7 @@ NdbTransaction::sendTC_COMMIT_ACK(TransporterFacade *tp,
   Uint32 * dataPtr = aSignal->getDataPtrSend();
   dataPtr[0] = transId1;
   dataPtr[1] = transId2;
-
-  tp->sendSignal(aSignal, refToNode(aTCRef));
+  tp->sendSignalUnCond(aSignal, refToNode(aTCRef));
 }
 
 int
diff --git a/storage/ndb/src/ndbapi/TransporterFacade.cpp b/storage/ndb/src/ndbapi/TransporterFacade.cpp
index 7005d5d2325d270273bd2573a3ca12c416852f9b..59ccbd0a7547f8a61b5606f5def73a7748e28114 100644
--- a/storage/ndb/src/ndbapi/TransporterFacade.cpp
+++ b/storage/ndb/src/ndbapi/TransporterFacade.cpp
@@ -987,7 +987,7 @@ TransporterFacade::sendSignal(NdbApiSignal * aSignal, NodeId aNode){
       LinearSectionPtr ptr[3];
       signalLogger.sendSignal(* aSignal,
 			      1,
-			      aSignal->getDataPtr(),
+			      tDataPtr,
 			      aNode, ptr, 0);
       signalLogger.flushSignalLog();
       aSignal->theSendersBlockRef = tmp;
@@ -1014,6 +1014,7 @@ TransporterFacade::sendSignal(NdbApiSignal * aSignal, NodeId aNode){
 
 int
 TransporterFacade::sendSignalUnCond(NdbApiSignal * aSignal, NodeId aNode){
+  Uint32* tDataPtr = aSignal->getDataPtrSend();
 #ifdef API_TRACE
   if(setSignalLog() && TRACE_GSN(aSignal->theVerId_signalNumber)){
     Uint32 tmp = aSignal->theSendersBlockRef;
@@ -1021,7 +1022,7 @@ TransporterFacade::sendSignalUnCond(NdbApiSignal * aSignal, NodeId aNode){
     LinearSectionPtr ptr[3];
     signalLogger.sendSignal(* aSignal,
 			    0,
-			    aSignal->getDataPtr(),
+			    tDataPtr,
 			    aNode, ptr, 0);
     signalLogger.flushSignalLog();
     aSignal->theSendersBlockRef = tmp;
@@ -1032,7 +1033,7 @@ TransporterFacade::sendSignalUnCond(NdbApiSignal * aSignal, NodeId aNode){
          (aSignal->theReceiversBlockNumber != 0));
   SendStatus ss = theTransporterRegistry->prepareSend(aSignal, 
 						      0, 
-						      aSignal->getDataPtr(), 
+						      tDataPtr,
 						      aNode, 
 						      0);
   
diff --git a/storage/ndb/src/ndbapi/TransporterFacade.hpp b/storage/ndb/src/ndbapi/TransporterFacade.hpp
index b64ce2e8614fa9640ec3492406280e2975822eb7..eb2f162da88701916a20620c9960a8df4fe92fc2 100644
--- a/storage/ndb/src/ndbapi/TransporterFacade.hpp
+++ b/storage/ndb/src/ndbapi/TransporterFacade.hpp
@@ -175,7 +175,8 @@ private:
   friend class GrepSS;
   friend class Ndb;
   friend class Ndb_cluster_connection_impl;
-
+  friend class NdbTransaction;
+  
   int sendSignalUnCond(NdbApiSignal *, NodeId nodeId);
 
   bool isConnected(NodeId aNodeId);