diff --no-dereference -uNr opennebula-5.2.1.orig/src/rm/RequestManagerVirtualMachine.cc opennebula-5.2.1-vncautoportforce/src/rm/RequestManagerVirtualMachine.cc
--- opennebula-5.2.1.orig/src/rm/RequestManagerVirtualMachine.cc	2017-01-04 10:40:37.000000000 -0600
+++ opennebula-5.2.1-vncautoportforce/src/rm/RequestManagerVirtualMachine.cc	2017-04-23 09:32:58.972512837 -0500
@@ -695,6 +695,7 @@
 
 /* -------------------------------------------------------------------------- */
 
+#if 0
 int set_vnc_port(VirtualMachine *vm, int cluster_id, RequestAttributes& att)
 {
     ClusterPool * cpool = Nebula::instance().get_clpool();
@@ -719,22 +720,32 @@
     }
     else
     {
-        rc = cpool->get_vnc_port(cluster_id, vm->get_oid(), port);
+        graphics->replace("PORT", "auto");
 
-        if ( rc == 0 )
-        {
-            graphics->replace("PORT", port);
-
-            Nebula::instance().get_vmpool()->update(vm);
-        }
-        else
-        {
-            att.resp_msg = "No free VNC ports available in the cluster";
-        }
+        Nebula::instance().get_vmpool()->update(vm);
     }
 
     return rc;
 }
+#else
+int set_vnc_port(VirtualMachine *vm, int cluster_id, RequestAttributes& att)
+{
+    ClusterPool * cpool = Nebula::instance().get_clpool();
+
+    VectorAttribute * graphics = vm->get_template_attribute("GRAPHICS");
+
+    if (graphics == 0)
+    {
+        return 0;
+    }
+
+    graphics->replace("PORT", "auto");
+
+    Nebula::instance().get_vmpool()->update(vm);
+
+    return 0;
+}
+#endif
 
 /* -------------------------------------------------------------------------- */
 /* -------------------------------------------------------------------------- */
