diff -Naur mozilla-release.old/toolkit/xre/nsKDEUtils.cpp mozilla-release.new/toolkit/xre/nsKDEUtils.cpp
--- a/toolkit/xre/nsKDEUtils.cpp	2015-01-14 09:52:25.179106037 +0000
+++ b/toolkit/xre/nsKDEUtils.cpp	2015-01-24 23:54:35.441810863 +0000
@@ -19,13 +19,9 @@
 #include <unistd.h>
 #include <X11/Xlib.h>
 
-//#define DEBUG_KDE
-#ifdef DEBUG_KDE
-#define KMOZILLAHELPER "kmozillahelper"
-#else
+#define DEBUG_KDE
 // not need for lib64, it's a binary
 #define KMOZILLAHELPER "/usr/lib/mozilla/kmozillahelper"
-#endif
 
 #define KMOZILLAHELPER_VERSION 6
 #define MAKE_STR2( n ) #n
@@ -34,11 +30,25 @@
 static bool getKdeSession()
     {
     Display* dpy = XOpenDisplay( NULL );
-    if( dpy == NULL )
+    if( dpy == NULL ) {
+#ifdef DEBUG_KDE
+		fprintf( stderr, "DEBUG_KDE: getKdeSession() - X Display not found\n");
+#endif		
         return false;
+	}
     Atom kde_full_session = XInternAtom( dpy, "KDE_FULL_SESSION", True );
     bool kde = false;
+#ifdef DEBUG_KDE
+    char *prop_string;
+    if( kde_full_session == None )
+        {
+        fprintf( stderr, "DEBUG_KDE: getKdeSession() - XInternAtom( dpy, \"KDE_FULL_SESSION\", True ) - failed\n" );
+        }
+
+	if ( 1 )
+#else
     if( kde_full_session != None )
+#endif
         {
         int cnt;
         if( Atom* props = XListProperties( dpy, DefaultRootWindow( dpy ), &cnt ))
@@ -47,19 +57,27 @@
                  i < cnt;
                  ++i )
                 {
+#ifdef DEBUG_KDE
+                prop_string = XGetAtomName( dpy, props[ i ]);
+                fprintf( stderr, "DEBUG_KDE: getKdeSession() - DefaultRootWindow property[%d/%d]=\"%s\"\n", i+1, cnt, prop_string );
+                XFree( prop_string );
+#endif
                 if( props[ i ] == kde_full_session )
                     {
                     kde = true;
-#ifdef DEBUG_KDE
-                    fprintf( stderr, "KDE SESSION %d\n", kde );
-#endif
                     break;
                     }
                 }
             XFree( props );
             }
         }
+
     XCloseDisplay( dpy );
+#ifdef DEBUG_KDE
+    fprintf( stderr, "DEBUG_KDE: getKdeSession() - full KDE Session found=%d\n", kde );
+	fprintf( stderr, "DEBUG_KDE: getKdeSession() - forcing KDE found=true\n" );
+	kde=true;
+#endif
     return kde;
     }
 
@@ -70,7 +88,7 @@
     command.AppendElement( NS_LITERAL_CSTRING( MAKE_STR( KMOZILLAHELPER_VERSION )));
     bool kde = nsKDEUtils::command( command );
 #ifdef DEBUG_KDE
-    fprintf( stderr, "KDE RUNNING %d\n", kde );
+    fprintf( stderr, "DEBUG_KDE: getKdeSupport() - KDE support available=%d\n", kde );
 #endif
     return kde;
     }
@@ -98,12 +116,19 @@
 bool nsKDEUtils::kdeSession()
     {
     static bool session = getKdeSession();
+#ifdef DEBUG_KDE
+    fprintf( stderr, "DEBUG_KDE: kdeSession() - (KDE) session=%d\n", session );
+#endif
     return session;
     }
 
 bool nsKDEUtils::kdeSupport()
     {
     static bool support = kdeSession() && getKdeSupport();
+#ifdef DEBUG_KDE
+    fprintf( stderr, "DEBUG_KDE: kdeSupport() - (KDE) support=%d\n", support );
+	fprintf( stderr, "DEBUG_KDE: kdeSupport() - kmozillahelper process running=%d\n", helperRunning );
+#endif
     return support && helperRunning;
     }
 
@@ -123,9 +148,9 @@
     bool command_failed = false;
     while( !command_done && !command_failed && fgets( buf, 8192, p->file ) != NULL )
         { // TODO what if the kernel splits a line into two chunks?
-//#ifdef DEBUG_KDE
-//        fprintf( stderr, "READ: %s %d\n", buf, feof( p->file ));
-//#endif
+#ifdef DEBUG_KDE
+        fprintf( stderr, "DEBUG_KDE: kdeReadFunc() - read \"%s\" %d\n", buf, feof( p->file ));
+#endif
         if( char* eol = strchr( buf, '\n' ))
             *eol = '\0';
         command_done = ( strcmp( buf, "\\1" ) == 0 );
@@ -207,8 +232,12 @@
 bool nsKDEUtils::internalCommand( const nsTArray<nsCString>& command, const GtkWindow* parent, bool blockUi,
     nsTArray<nsCString>* output )
     {
-    if( !startHelper())
+    if( !startHelper()) {
+#ifdef DEBUG_KDE
+		fprintf( stderr, "DEBUG_KDE: commandBlockUi() - kmozillahelper process not running\n" );
+#endif
         return false;
+	}
     feedCommand( command );
     // do not store the data in 'this' but in extra structure, just in case there
     // is reentrancy (can there be? the event loop is re-entered)
@@ -244,14 +273,22 @@
 
 bool nsKDEUtils::startHelper()
     {
-    if( helperRunning )
+    if( helperRunning ) {
+#ifdef DEBUG_KDE
+		fprintf( stderr, "DEBUG_KDE: startHelper() - kmozillahelper process running already\n" );
+#endif
         return true;
-    if( helperFailed )
-        return false;
+	}
+    if( helperFailed ) {
+#ifdef DEBUG_KDE
+		fprintf( stderr, "DEBUG_KDE: startHelper() - kmozillahelper process failed\n");
+#endif
+		return false;
+	}
     helperFailed = true;
     int fdcommand[ 2 ];
     int fdreply[ 2 ];
-    if( pipe( fdcommand ) < 0 )
+    if( pipe( fdcommand ) < 0 ) 
         return false;
     if( pipe( fdreply ) < 0 )
         {
@@ -264,6 +301,9 @@
         {
         case -1:
             {
+#ifdef DEBUG_KDE
+			fprintf( stderr, "DEBUG_KDE: startHelper() - unable to fork kmozillahelper process\n" );
+#endif
             close( fdcommand[ 0 ] );
             close( fdcommand[ 1 ] );
             close( fdreply[ 0 ] );
@@ -285,7 +325,8 @@
                  ++i )
                 close( i );
 #ifdef DEBUG_KDE
-            execvp( KMOZILLAHELPER, args );
+			fprintf( stderr, "DEBUG_KDE: startHelper() - execvp() forking child kmozillahelper process\n" );
+			execvp( KMOZILLAHELPER, args );
 #else
             execv( KMOZILLAHELPER, args );
 #endif
@@ -299,6 +340,9 @@
             close( fdreply[ 1 ] );
             if( commandFile == NULL || replyFile == NULL )
                 {
+#ifdef DEBUG_KDE
+				fprintf( stderr, "DEBUG_KDE: startHelper() - unable to communicate with parent kmozillahelper process\n" );
+#endif
                 closeHelper();
                 return false;
                 }
@@ -307,11 +351,17 @@
         }
     helperFailed = false;
     helperRunning = true;
+#ifdef DEBUG_KDE
+			fprintf( stderr, "DEBUG_KDE: startHelper() - kmozillahelper process forked=1\n" );
+#endif
     return true;
     }
 
 void nsKDEUtils::closeHelper()
     {
+#ifdef DEBUG_KDE
+			fprintf( stderr, "DEBUG_KDE: closeHelper() - closing kmozillahelper process\n" );
+#endif
     if( commandFile != NULL )
         fclose( commandFile ); // this will also make the helper quit
     if( replyFile != NULL )
@@ -329,7 +379,7 @@
         line.ReplaceSubstring( "\\", "\\" "\\" ); // \ -> \\ , i.e. escape
         line.ReplaceSubstring( "\n", "\\n" );
 #ifdef DEBUG_KDE
-        fprintf( stderr, "COMM: %s\n", line.get());
+        fprintf( stderr, "DEBUG_KDE: feedCommand() : command=\"%s\"\n", line.get());
 #endif
         fputs( line.get(), commandFile );
fputs( "\n", commandFile );
