diff -rupN image/contrib/image_attach/image_attach.install image_new/contrib/image_attach/image_attach.install
--- image/contrib/image_attach/image_attach.install	2008-06-07 05:09:36.000000000 +1000
+++ contrib/image_attach/image_attach.install	2010-03-25 11:12:14.425610672 +1100
@@ -6,27 +6,27 @@ function image_attach_install() {
     case 'mysqli':
     case 'mysql':
       db_query("CREATE TABLE {image_attach} (
-        nid int(10) unsigned NOT NULL default '0',
+        vid int(10) unsigned NOT NULL default '0',
         iid int(10) unsigned NOT NULL default '0',
-        PRIMARY KEY  (nid),
+        PRIMARY KEY  (vid),
         KEY (iid)
       ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
       break;
 
     case 'pgsql':
       db_query("CREATE TABLE {image_attach} (
-        nid integer NOT NULL default '0',
+        vid integer NOT NULL default '0',
         iid integer NOT NULL default '0',
-        PRIMARY KEY (nid)
+        PRIMARY KEY (vid)
       )");
       db_query("CREATE INDEX {image_attach}_iid_idx ON {image_attach}(iid)");
       break;
 
     case 'oracle10':
       db_query("CREATE TABLE {image_attach} (
-        nid integer default '0' NOT NULL,
+        vid integer default '0' NOT NULL,
         iid integer default '0' NOT NULL,
-        CONSTRAINT {image_attach}_pkey PRIMARY KEY (nid)
+        CONSTRAINT {image_attach}_pkey PRIMARY KEY (vid)
       )");
       db_query("CREATE INDEX {image_attach}_iid_idx ON {image_attach}(iid)");
       break;
@@ -74,3 +74,26 @@ function image_attach_update_2() {
   }
   return $ret;
 }
+
+/**
+ * Convert to node revision attachments, as apposed to node attachments
+ */
+function image_attach_update_3() {
+  $ret = array();
+  switch ($GLOBALS['db_type']) {
+    case 'mysqli':
+    case 'mysql':
+      $ret[] = update_sql("ALTER TABLE {image_attach} CHANGE nid vid int(10) unsigned NOT NULL default '0'");
+      break;
+
+    case 'pgsql':
+    case 'oracle10':
+      $ret[] = update_sql("ALTER TABLE {image_attach} RENAME COLUMN nid TO vid");
+      break;
+  }
+
+  // Update existing records
+  $ret[] = update_sql("UPDATE {image_attach} ia SET ia.vid = (SELECT vid FROM {node} n WHERE n.nid = ia.vid)");
+
+  return $ret;
+}
diff -rupN image/contrib/image_attach/image_attach.module image_new/contrib/image_attach/image_attach.module
--- image/contrib/image_attach/image_attach.module	2009-11-03 12:21:42.000000000 +1100
+++ contrib/image_attach/image_attach.module	2010-03-25 11:17:29.291614240 +1100
@@ -281,19 +281,19 @@ function image_attach_nodeapi(&$node, $o
     case 'insert':
     case 'update':
       if (isset($node->iid)) {
-        db_query("DELETE FROM {image_attach} WHERE nid=%d", $node->nid);
+        db_query("DELETE FROM {image_attach} WHERE vid = %d", $node->vid);
         if ($node->iid > 0) {
-          db_query("INSERT INTO {image_attach} (nid, iid) VALUES (%d, %d)", $node->nid, $node->iid);
+          db_query("INSERT INTO {image_attach} (vid, iid) VALUES (%d, %d)", $node->vid, $node->iid);
         }
       }
       break;
 
     case 'delete':
-      db_query("DELETE FROM {image_attach} WHERE nid=%d", $node->nid);
+      db_query("DELETE FROM {image_attach} WHERE vid = %d", $node->nid);
       break;
 
     case 'load':
-      $iid = db_result(db_query("SELECT iid FROM {image_attach} WHERE nid=%d", $node->nid));
+      $iid = db_result(db_query("SELECT iid FROM {image_attach} WHERE vid = %d", $node->vid));
       return array('iid' => $iid);
 
     // Pass the body and teaser objects to the theme again to add the images
@@ -349,10 +349,10 @@ function image_attach_views_tables() {
     'join' => array(
       'left' => array(
         'table' => 'node',
-        'field' => 'nid'
+        'field' => 'vid'
       ),
       'right' => array(
-        'field' => 'nid'
+        'field' => 'vid'
       ),
     ),
     'fields' => array(
