diff --git a/src/main/webapp/app/WebSocket.js b/src/main/webapp/app/WebSocket.js
index 5564b7ab9c317abb786c93b78f8ef152bc2104b3..2ebd19d8570aa9c9a5125c7ecc4861e26ff6e6ff 100644
--- a/src/main/webapp/app/WebSocket.js
+++ b/src/main/webapp/app/WebSocket.js
@@ -55,7 +55,8 @@ Ext.define('ARSnova.WebSocket', {
 		countPreparationQuestionAnswers: "arsnova/socket/question/lecturer/preparation/answercount",
 		learningProgressOptions: "arsnova/socket/session/learningprogress/options",
 		learningProgressChange: "arsnova/socket/session/learningprogress/change",
-		countFlashcards: "arsnova/question/lecturer/flashcard/count"
+		countFlashcards: "arsnova/question/lecturer/flashcard/count",
+		flipFlashcards: "arsnova/session/flashcards/flip"
 	},
 
 	memoization: {},
@@ -251,6 +252,11 @@ Ext.define('ARSnova.WebSocket', {
 				this.fireEvent(this.events.countFlashcards, count);
 			}, this));
 
+			this.socket.on('flipFlashcards', Ext.bind(function (flip) {
+				console.debug("Socket.IO: flipFlashcards", flip);
+				this.fireEvent(this.events.flipFlashcards, flip);
+			}, this));
+
 			this.socket.on('learningProgressOptions', Ext.bind(function (options) {
 				console.debug("Socket.IO: learningProgressOptions", options);
 				this.fireEvent(this.events.learningProgressOptions, options);
diff --git a/src/main/webapp/app/model/Session.js b/src/main/webapp/app/model/Session.js
index 4a528498d9b448346a6f7b6ec169635cdd31eabb..1b2cee8afbfb14facc91a5997311fb8e0a44f568 100644
--- a/src/main/webapp/app/model/Session.js
+++ b/src/main/webapp/app/model/Session.js
@@ -89,6 +89,7 @@ Ext.define('ARSnova.model.Session', {
 		sessionLeave: "arsnova/session/leave",
 		learningProgressOptions: "arsnova/session/learningprogress/options",
 		learningProgressChange: "arsnova/session/learningprogress/change",
+		flipFlashcards: "arsnova/session/flashcards/flip",
 		featureChange: "arsnova/session/features/change"
 	},
 
@@ -105,6 +106,11 @@ Ext.define('ARSnova.model.Session', {
 			this.fireEvent(this.events.learningProgressChange);
 		}, this);
 
+		ARSnova.app.socket.on(ARSnova.app.socket.events.flipFlashcards, function (flip) {
+			ARSnova.app.getController('FlashcardQuestions').flipFlashcards(flip);
+			this.fireEvent(this.events.flipFlashcards, flip);
+		}, this);
+
 		ARSnova.app.socket.on(ARSnova.app.socket.events.featureChange, function (features) {
 			var prevFeatures = ARSnova.app.getController('Feature').getActiveFeatures();
 
@@ -175,6 +181,10 @@ Ext.define('ARSnova.model.Session', {
 		return this.getProxy().lockFeedbackInput(sessionStorage.getItem("keyword"), lock, callbacks);
 	},
 
+	flipFlashcards: function (flip, callbacks) {
+		return this.getProxy().flipFlashcards(sessionStorage.getItem("keyword"), flip, callbacks);
+	},
+
 	getMyLearningProgress: function (sessionKeyword, callbacks) {
 		var me = this;
 		return this.getProxy().getMyLearningProgress(sessionKeyword, this.getLearningProgress(), {
diff --git a/src/main/webapp/app/proxy/RestProxy.js b/src/main/webapp/app/proxy/RestProxy.js
index f58bd0e3706dedd522dc68eb57ffe13dd6338450..5c03f9a041514a49e9c1682fb9136d1ba89cc315 100755
--- a/src/main/webapp/app/proxy/RestProxy.js
+++ b/src/main/webapp/app/proxy/RestProxy.js
@@ -904,6 +904,18 @@ Ext.define('ARSnova.proxy.RestProxy', {
 		});
 	},
 
+	flipFlashcards: function (sessionKeyword, flip, callbacks) {
+		this.arsjax.request({
+			url: "session/" + sessionKeyword + "/flipflashcards",
+			method: "POST",
+			params: {
+				flip: flip
+			},
+			success: callbacks.success,
+			failure: callbacks.failure
+		});
+	},
+
 	getFeedback: function (sessionKeyword, callbacks) {
 		this.arsjax.request({
 			url: "session/" + sessionKeyword + "/feedback/",