diff --git a/fabric/connection.py b/fabric/connection.py
index <HASH>..<HASH> 100644
--- a/fabric/connection.py
+++ b/fabric/connection.py
@@ -232,6 +232,15 @@ class Connection(object):
         """
         return Transfer(self).get(*args, **kwargs)
 
+    def put(self, *args, **kwargs):
+        """
+        Put a remote file (or file-like object) to the remote filesystem.
+
+        Simply a wrapper for `.Transfer.put`. Please see its documentation for
+        all details.
+        """
+        return Transfer(self).put(*args, **kwargs)
+
 
 class Group(list):
     """
diff --git a/tests/connection.py b/tests/connection.py
index <HASH>..<HASH> 100644
--- a/tests/connection.py
+++ b/tests/connection.py
@@ -325,6 +325,15 @@ class Connection_(Spec):
             Transfer.assert_called_with(c)
             Transfer.return_value.get.assert_called_with('meh')
 
+    class put:
+        @patch('fabric.connection.Transfer')
+        def calls_Transfer_put(self, Transfer):
+            "calls Transfer.put()"
+            c = Connection('host')
+            c.put('meh')
+            Transfer.assert_called_with(c)
+            Transfer.return_value.put.assert_called_with('meh')
+
 
 class Group_(Spec):
     class init:
Connection-level test ensuring Connection.put is hooked up