diff --git a/src/server.cpp b/src/server.cpp
index 6f384e74391bdd44f3be26c42a4c6110214b4d96..35405851fa85260240b44fe41f0de61c4a98de7f 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -758,16 +758,11 @@ void Server::AsyncRunStep(bool initial_step)
 					obj->m_known_by_count++;
 			}
 
-			NetworkPacket pkt(TOCLIENT_ACTIVE_OBJECT_REMOVE_ADD, 0, client->peer_id);
-			pkt.putRawString(data_buffer.c_str(), data_buffer.size());
-
-
+			u32 pktSize = SendActiveObjectRemoveAdd(client->peer_id, data_buffer);
 			verbosestream << "Server: Sent object remove/add: "
 					<< removed_objects.size() << " removed, "
 					<< added_objects.size() << " added, "
-					<< "packet size is " << pkt.getSize() << std::endl;
-
-			Send(&pkt);
+					<< "packet size is " << pktSize << std::endl;
 		}
 		m_clients.Unlock();
 	}
@@ -846,19 +841,11 @@ void Server::AsyncRunStep(bool initial_step)
 				Send them.
 			*/
 			if(reliable_data.size() > 0) {
-				NetworkPacket pkt(TOCLIENT_ACTIVE_OBJECT_MESSAGES,
-						0, client->peer_id);
-
-				pkt.putRawString(reliable_data.c_str(), reliable_data.size());
-				Send(&pkt);
+				SendActiveObjectMessages(client->peer_id, reliable_data);
 			}
 
 			if(unreliable_data.size() > 0) {
-				NetworkPacket pkt(TOCLIENT_ACTIVE_OBJECT_MESSAGES,
-						0, client->peer_id);
-
-				pkt.putRawString(unreliable_data.c_str(), unreliable_data.size());
-				Send(&pkt);
+				SendActiveObjectMessages(client->peer_id, unreliable_data);
 			}
 		}
 		m_clients.Unlock();
@@ -1898,6 +1885,23 @@ void Server::SendPlayerInventoryFormspec(u16 peer_id)
 	Send(&pkt);
 }
 
+u32 Server::SendActiveObjectRemoveAdd(u16 peer_id, const std::string &datas)
+{
+	NetworkPacket pkt(TOCLIENT_ACTIVE_OBJECT_REMOVE_ADD, 0, peer_id);
+	pkt.putRawString(datas.c_str(), datas.size());
+	Send(&pkt);
+	return pkt.getSize();
+}
+
+void Server::SendActiveObjectMessages(u16 peer_id, const std::string &datas)
+{
+	NetworkPacket pkt(TOCLIENT_ACTIVE_OBJECT_MESSAGES,
+			0, peer_id);
+
+	pkt.putRawString(datas.c_str(), datas.size());
+	Send(&pkt);
+}
+
 s32 Server::playSound(const SimpleSoundSpec &spec,
 		const ServerSoundParams &params)
 {
diff --git a/src/server.h b/src/server.h
index 546a44a20c1f379b9cb77a75a45be47f0b162c80..900a1eaaa7e1ff8ecfe55082a1ef39ebee3032f6 100644
--- a/src/server.h
+++ b/src/server.h
@@ -463,6 +463,8 @@ class Server : public con::PeerHandler, public MapEventReceiver,
 		float expirationtime, float size,
 		bool collisiondetection, bool vertical, std::string texture);
 
+	u32 SendActiveObjectRemoveAdd(u16 peer_id, const std::string &datas);
+	void SendActiveObjectMessages(u16 peer_id, const std::string &datas);
 	/*
 		Something random
 	*/