Index: /trunk/src/VBox/Additions/linux/lightdm-greeter/vbox-greeter.cpp
===================================================================
--- /trunk/src/VBox/Additions/linux/lightdm-greeter/vbox-greeter.cpp	(revision 45520)
+++ /trunk/src/VBox/Additions/linux/lightdm-greeter/vbox-greeter.cpp	(revision 45521)
@@ -207,5 +207,5 @@
 
     uint64_t u64Timestamp = 0;
-    char *pszValTemp;
+    char *pszValTemp = NULL;
     char *pszFlags = NULL;
     /* The buffer for storing the data and its initial size.  We leave a bit
@@ -220,8 +220,7 @@
     for (unsigned i = 0; i < 10; i++)
     {
-        void *pvTmpBuf = RTMemRealloc(pvBuf, cbBuf);
-        if (pvTmpBuf)
-        {
-            pvBuf = pvTmpBuf;
+        pvBuf = RTMemRealloc(pvBuf, cbBuf);
+        if (pvBuf)
+        {
             rc = VbglR3GuestPropRead(uClientID, pszKey, pvBuf, cbBuf,
                                      &pszValTemp, &u64Timestamp, &pszFlags,
@@ -253,5 +252,5 @@
         if (pszFlags)
         {
-            if (fReadOnly
+            if (   fReadOnly
                 && !RTStrStr(pszFlags, "RDONLYGUEST"))
             {
@@ -274,4 +273,13 @@
         }
     }
+
+#ifdef DEBUG
+    vboxGreeterLog("Read guest property \"%s\"=\"%s\" (Flags: %s, TS: %RU64): %Rrc\n",
+                   pszKey, pszValTemp ? pszValTemp : "<None>",
+                   pszFlags ? pszFlags : "<None>", u64Timestamp, rc);
+#endif
+
+    if (pvBuf)
+        RTMemFree(pvBuf);
 
     return rc;
@@ -471,5 +479,5 @@
 #ifdef VBOX_WITH_FLTK
     AssertPtr(pCtx->pLblInfo);
-    pCtx->pLblInfo->label(pszText);
+    pCtx->pLblInfo->copy_label(pszText);
 #else
     GtkLabel *pLblInfo = GTK_LABEL(gtk_builder_get_object(pCtx->pBuilder, "lbl_info"));
@@ -735,5 +743,5 @@
 # ifdef VBOX_WITH_FLTK
         AssertPtr(pCtx->pLblInfo);
-        pCtx->pLblInfo->label(szVal);
+        pCtx->pLblInfo->copy_label(szVal);
 # else
         GtkLabel *pLblInfo = GTK_LABEL(gtk_builder_get_object(pCtx->pBuilder, VBOX_GREETER_UI_LBL_INFO));
@@ -778,5 +786,5 @@
 # ifdef VBOX_WITH_FLTK
             AssertPtr(pCtx->pLblInfo);
-            pCtx->pLblInfo->label(szVal);
+            pCtx->pLblInfo->copy_label(szVal);
 # else
             GtkLabel *pLblInfo = GTK_LABEL(gtk_builder_get_object(pCtx->pBuilder, VBOX_GREETER_UI_LBL_INFO));
@@ -1257,6 +1265,6 @@
     RTStrPrintf(szLabel, sizeof(szLabel), "Oracle VM VirtualBox Guest Additions %sr%s",
                 RTBldCfgVersion(), RTBldCfgRevisionStr());
-    Fl_Box *pLblInfo = new Fl_Box(FL_NO_BOX, 90, uOffsetY + 150,
-                                  300, 20, szLabel);
+    Fl_Box *pLblInfo = new Fl_Box(FL_NO_BOX , 50, uOffsetY + 150,
+                                  400, 20, szLabel);
     AssertPtr(pLblInfo);
     ctx.pLblInfo = pLblInfo;
@@ -1375,9 +1383,13 @@
                                  szVal, sizeof(szVal), NULL /* Timestamp. */);
             if (RT_SUCCESS(rc2))
-#ifdef VBOX_WITH_FLTK
-                pLblInfo->label(szVal);
+            {
+#ifdef VBOX_WITH_FLTK
+                Assert(pLblInfo);
+                pLblInfo->copy_label(szVal);
 #else
                 gtk_label_set_text(pLblInfo, szVal);
 #endif
+            }
+
             /* Get initial timestamp so that we can compare the time
              * whether the value has been changed or not in our event callback. */
@@ -1425,6 +1437,8 @@
                                  FALSE /* No blocking */);
         Fl::check();
-    }
-
+        /** @todo Abort condition? */
+    }
+
+    /** @todo Never reached so far. */
     g_main_context_unref(pMainCtx);
 
