diff --git a/lib/Doctrine/DBAL/Schema/ColumnDiff.php b/lib/Doctrine/DBAL/Schema/ColumnDiff.php
index c993c9b11893577fa6995b2514dfcdb2bb488e7e..61d7f7319502b22410e6b90f709c81d768a65116 100644
--- a/lib/Doctrine/DBAL/Schema/ColumnDiff.php
+++ b/lib/Doctrine/DBAL/Schema/ColumnDiff.php
@@ -77,6 +77,8 @@ class ColumnDiff
      */
     public function getOldColumnName()
     {
-        return new Identifier($this->oldColumnName);
+        $quote = $this->fromColumn && $this->fromColumn->isQuoted();
+
+        return new Identifier($this->oldColumnName, $quote);
     }
 }
diff --git a/lib/Doctrine/DBAL/Schema/Identifier.php b/lib/Doctrine/DBAL/Schema/Identifier.php
index 1e48614660e1a36e805c475923d3fdbff2d9cea8..babe583e43add89cf3586c254419916b0decf05e 100644
--- a/lib/Doctrine/DBAL/Schema/Identifier.php
+++ b/lib/Doctrine/DBAL/Schema/Identifier.php
@@ -35,9 +35,14 @@ class Identifier extends AbstractAsset
      * Constructor.
      *
      * @param string $identifier Identifier name to wrap.
+     * @param bool   $quote      Whether to force quoting the given identifier.
      */
-    public function __construct($identifier)
+    public function __construct($identifier, $quote = false)
     {
         $this->_setName($identifier);
+
+        if ($quote && ! $this->_quoted) {
+            $this->_setName('"' . $this->getName() . '"');
+        }
     }
 }
diff --git a/tests/Doctrine/Tests/DBAL/Schema/ColumnDiffTest.php b/tests/Doctrine/Tests/DBAL/Schema/ColumnDiffTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..f2d8d2143af682f68bb45257583f719206b808b9
--- /dev/null
+++ b/tests/Doctrine/Tests/DBAL/Schema/ColumnDiffTest.php
@@ -0,0 +1,28 @@
+<?php
+
+namespace Doctrine\Tests\DBAL\Schema;
+
+use Doctrine\DBAL\Schema\Column;
+use Doctrine\DBAL\Schema\ColumnDiff;
+use Doctrine\DBAL\Types\Type;
+
+class ColumnDiffTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @group DBAL-1255
+     */
+    public function testPreservesOldColumnNameQuotation()
+    {
+        $fromColumn = new Column('"foo"', Type::getType(Type::INTEGER));
+        $toColumn = new Column('bar', Type::getType(Type::INTEGER));
+
+        $columnDiff = new ColumnDiff('"foo"', $toColumn, array());
+        $this->assertTrue($columnDiff->getOldColumnName()->isQuoted());
+
+        $columnDiff = new ColumnDiff('"foo"', $toColumn, array(), $fromColumn);
+        $this->assertTrue($columnDiff->getOldColumnName()->isQuoted());
+
+        $columnDiff = new ColumnDiff('foo', $toColumn, array(), $fromColumn);
+        $this->assertTrue($columnDiff->getOldColumnName()->isQuoted());
+    }
+}