Index: lib/OpenLayers/Layer/VirtualEarth.js
===================================================================
--- lib/OpenLayers/Layer/VirtualEarth.js	(revision 5224)
+++ lib/OpenLayers/Layer/VirtualEarth.js	(working copy)
@@ -103,9 +103,13 @@
 
         if (this.mapObject != null) {
             try { // this is to catch a Mozilla bug without falling apart
-                this.mapObject.LoadMap(null, null, this.type);
+                // The fourth argument is whether the map is 'fixed' -- not 
+                // draggable. See: 
+                // http://blogs.msdn.com/virtualearth/archive/2007/09/28/locking-a-virtual-earth-map.aspx
+                this.mapObject.LoadMap(null, null, this.type, true);
+                this.mapObject.AttachEvent("onmousedown", function() {return true; });
+                this.mapObject.HideDashboard();
             } catch (e) { }
-            this.mapObject.HideDashboard();
         }
     },
 
@@ -311,5 +315,16 @@
         return new Msn.VE.Pixel(x, y);
     },
 
+    /**
+     * APIMethod: dragPanMapObject
+     * 
+     * Parameters:
+     * dX - {Integer}
+     * dY - {Integer}
+     */
+    dragPanMapObject: function(x,y) {
+        this.mapObject.vemapcontrol.PanMap(x,-y);
+    },
+
     CLASS_NAME: "OpenLayers.Layer.VirtualEarth"
 });
Index: lib/OpenLayers/Layer/EventPane.js
===================================================================
--- lib/OpenLayers/Layer/EventPane.js	(revision 5224)
+++ lib/OpenLayers/Layer/EventPane.js	(working copy)
@@ -227,7 +227,7 @@
                     var center = this.getMapObjectLonLatFromOLLonLat(newCenter);
 
                     if (dragging && this.dragPanMapObject) {
-                        var res = this.map.resolution; //readability
+                        var res = this.map.getResolution(); //readability
                         var dX = (newCenter.lon - oldCenter.lon) / res;
                         var dY = (newCenter.lat - oldCenter.lat) / res;
                         this.dragPanMapObject(dX, dY);
