diff --git a/program/Source/networking/FileServerConnection.cpp b/program/Source/networking/FileServerConnection.cpp
index 8264a469ab952bffbee85ff771b6ca901f2efa8f..08233bff94655b31ef919c12a4269c15d30ec406 100644
--- a/program/Source/networking/FileServerConnection.cpp
+++ b/program/Source/networking/FileServerConnection.cpp
@@ -20,7 +20,7 @@ void FileServerConnection::run()
 
 	int msgType;
 	int fileNameSize;
-	streamsize fileSize;
+	long long fileSize;
 
 	socket().receiveBytes(&msgType, sizeof(msgType));
 	socket().receiveBytes(&fileNameSize, sizeof(fileNameSize));
@@ -50,9 +50,9 @@ void FileServerConnection::run()
 		}
 
 		// Send file
-		auto size = getFileSize(file);
+		fileSize = getFileSize(file);
 		socket().sendBytes(&OK_ANS, sizeof(OK_ANS));
-		socket().sendBytes(&size, sizeof(size));
+		socket().sendBytes(&fileSize, sizeof(fileSize));
 		while (file)
 		{
 			file.read(buffer, sizeof(buffer));
@@ -67,7 +67,7 @@ void FileServerConnection::run()
 		socket().receiveBytes(&fileSize, sizeof(fileSize));
 
 		// Create file
-		ofstream file("out/" + fileName, ios::out | ios::binary);
+		ofstream file(dataFolder + fileName, ios::out | ios::binary);
 
 		// Start receiving file
 		while (fileSize != 0)
@@ -78,7 +78,15 @@ void FileServerConnection::run()
 		}
 
 		socket().sendBytes(&OK_ANS, sizeof(OK_ANS));
+		socket().close();
+		file.close();
 		cout << "received: " << fileName << endl;
+
+		auto result = app.cfs.addFile(fileName, fileName);
+		if (!result)
+			cout << "error uploading file: " << fileName << endl;
+		else
+			cout << "successfully uploaded file: " << fileName << endl;
 	}
 	else
 	{
diff --git a/program/Source/networking/HomeNetworkCommunications.cpp b/program/Source/networking/HomeNetworkCommunications.cpp
index bd92a6c03f79c488c8465c695a2bbad4e6781309..7762b44177e516130c3354068704434e6aeda91e 100644
--- a/program/Source/networking/HomeNetworkCommunications.cpp
+++ b/program/Source/networking/HomeNetworkCommunications.cpp
@@ -66,7 +66,7 @@ bool HomeNetworkCommunications::addFileRemote(string fileID)
 	}
 
 	socket.receiveBytes(&msgType, sizeof(msgType));
-	if (msgType != OK_ANS)
+	if (msgType == OK_ANS)
 		// Successfully sent
 		return true;
 
@@ -86,7 +86,6 @@ ReturnableFile HomeNetworkCommunications::getFileRemote(string fileID)
 		result.setErrorMessage("Remote server not available");
 		return result;
 	}
-		
 	
 	int msgType;
 	int fileNameSize = fileID.size();
@@ -112,6 +111,11 @@ ReturnableFile HomeNetworkCommunications::getFileRemote(string fileID)
 	// Get file
 	char buffer[100000];
 	ofstream file(dataFolder + fileID, ios::out | ios::binary);
+	if (!file)
+	{
+		result.setErrorMessage("Error creating file");
+		return result;
+	}
 
 	socket.receiveBytes(&fileSize, sizeof(fileSize));
 	while (fileSize != 0)