diff --git a/ndb/src/kernel/blocks/dbtup/DbtupBuffer.cpp b/ndb/src/kernel/blocks/dbtup/DbtupBuffer.cpp
index ea46ee94fdc5b7cb56fca087d8daa782a365a3c2..f179bbc926fa6ddbf8617d68d61f68e8d37763fe 100644
--- a/ndb/src/kernel/blocks/dbtup/DbtupBuffer.cpp
+++ b/ndb/src/kernel/blocks/dbtup/DbtupBuffer.cpp
@@ -141,6 +141,8 @@ void Dbtup::sendReadAttrinfo(Signal* signal,
   const Uint32 type = getNodeInfo(nodeId).m_type;
   bool is_api = (type >= NodeInfo::API && type <= NodeInfo::REP);
   bool old_dest = (getNodeInfo(nodeId).m_version < MAKE_VERSION(3,5,0));
+  Uint32 TpacketTA = hostBuffer[nodeId].noOfPacketsTA;
+  Uint32 TpacketLen = hostBuffer[nodeId].packetLenTA;
   
   if (ERROR_INSERTED(4006) && (nodeId != getOwnNodeId())){
     // Use error insert to turn routing on
@@ -169,6 +171,19 @@ void Dbtup::sendReadAttrinfo(Signal* signal,
        */
       if(ToutBufIndex >= 22 && is_api && !old_dest) {
 	ljam();
+	/**
+	 * Flush buffer so that order is maintained
+	 */
+	if (TpacketTA != 0) {
+	  ljam();
+	  BlockReference TBref = numberToRef(API_PACKED, nodeId);
+	  MEMCOPY_NO_WORDS(&signal->theData[0],
+			   &hostBuffer[nodeId].packetBufferTA[0],
+			   TpacketLen);
+	  sendSignal(TBref, GSN_TRANSID_AI, signal, TpacketLen, JBB);
+	  hostBuffer[nodeId].noOfPacketsTA = 0;
+	  hostBuffer[nodeId].packetLenTA = 0;
+	}//if
 	LinearSectionPtr ptr[3];
 	ptr[0].p = &signal->theData[25];
 	ptr[0].sz = ToutBufIndex;