Index: /code/branches/core2/src/orxonox/core/CMakeLists.txt
===================================================================
--- /code/branches/core2/src/orxonox/core/CMakeLists.txt	(revision 965)
+++ /code/branches/core2/src/orxonox/core/CMakeLists.txt	(revision 966)
@@ -28,3 +28,4 @@
 TARGET_LINK_LIBRARIES( core
   util
+  ${OIS_LIBRARIES}
 )
Index: /code/branches/core2/src/orxonox/core/InputBuffer.cc
===================================================================
--- /code/branches/core2/src/orxonox/core/InputBuffer.cc	(revision 965)
+++ /code/branches/core2/src/orxonox/core/InputBuffer.cc	(revision 966)
@@ -29,4 +29,5 @@
 
 #include "InputBuffer.h"
+#include "util/Clipboard.h"
 
 namespace orxonox
@@ -132,4 +133,38 @@
         }
 
+        if (this->keyboard_->isModifierDown(OIS::Keyboard::Ctrl))
+        {
+            if (e.key == OIS::KC_V)
+            {
+                this->append(fromClipboard());
+                return true;
+            }
+            else if (e.key == OIS::KC_C)
+            {
+                toClipboard(this->buffer_);
+                return true;
+            }
+            else if (e.key == OIS::KC_X)
+            {
+                toClipboard(this->buffer_);
+                this->clear();
+                return true;
+            }
+        }
+        else if (this->keyboard_->isModifierDown(OIS::Keyboard::Shift))
+        {
+            if (e.key == OIS::KC_INSERT)
+            {
+                this->append(fromClipboard());
+                return true;
+            }
+            else if (e.key == OIS::KC_DELETE)
+            {
+                toClipboard(this->buffer_);
+                this->clear();
+                return true;
+            }
+        }
+
         if (this->bActivated_)
         {
Index: /code/branches/core2/src/util/CMakeLists.txt
===================================================================
--- /code/branches/core2/src/util/CMakeLists.txt	(revision 965)
+++ /code/branches/core2/src/util/CMakeLists.txt	(revision 966)
@@ -6,4 +6,5 @@
   Math.cc
   String.cc
+  Clipboard.cc
   SubString.cc
   MultiTypePrimitive.cc
Index: /code/branches/core2/src/util/Clipboard.cc
===================================================================
--- /code/branches/core2/src/util/Clipboard.cc	(revision 966)
+++ /code/branches/core2/src/util/Clipboard.cc	(revision 966)
@@ -0,0 +1,72 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabian 'x3n' Landau
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#include "Clipboard.h"
+
+#if ORXONOX_PLATFORM == ORXONOX_PLATFORM_WIN32
+    #include <windows.h>
+
+    bool toClipboard(std::string text)
+    {
+        if (OpenClipboard(0))
+        {
+            EmptyClipboard();
+            HGLOBAL clipbuffer = GlobalAlloc(GMEM_DDESHARE, text.size() + 1);
+            char* buffer = (char*)GlobalLock(clipbuffer);
+            strcpy(buffer, text.c_str());
+            GlobalUnlock(clipbuffer);
+            SetClipboardData(CF_TEXT, clipbuffer);
+            CloseClipboard();
+
+            return true;
+        }
+        return false;
+    }
+
+    std::string fromClipboard()
+    {
+        if (OpenClipboard(0))
+        {
+            HANDLE hData = GetClipboardData(CF_TEXT);
+            std::string output = (char*)GlobalLock(hData);
+            GlobalUnlock(hData);
+            CloseClipboard();
+
+            return output;
+        }
+        return "";
+    }
+#else
+    bool toClipboard(std::string text)
+    {
+        return false;
+    }
+    std::string fromClipboard()
+    {
+        return "";
+    }
+#endif
Index: /code/branches/core2/src/util/Clipboard.h
===================================================================
--- /code/branches/core2/src/util/Clipboard.h	(revision 966)
+++ /code/branches/core2/src/util/Clipboard.h	(revision 966)
@@ -0,0 +1,41 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabian 'x3n' Landau
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#ifndef _Clipboard_H__
+#define _Clipboard_H__
+
+#include <string>
+
+#include "UtilPrereqs.h"
+
+
+_UtilExport bool toClipboard(std::string text);
+_UtilExport std::string fromClipboard();
+
+
+#endif /* _Clipboard_H__ */
+
