diff --git a/src/SetBG.cc b/src/SetBG.cc
index 40f4120..52fe17f 100644
--- a/src/SetBG.cc
+++ b/src/SetBG.cc
@@ -196,6 +196,7 @@ bool SetBG::set_bg_xinerama(XineramaScreenInfo* xinerama_info, gint xinerama_num
 	Glib::RefPtr<Gdk::Pixmap> pixmap;
 	gint xin_screen_num; 
 	int xin_offset = -1;
+    bool dont_set_atoms = false;
 
     program_log("set_bg_xinerama(): num screens %d, xin screen %s, file %s", xinerama_num_screens, xinerama_screen.c_str(), file.c_str());
 
@@ -304,6 +305,8 @@ bool SetBG::set_bg_xinerama(XineramaScreenInfo* xinerama_info, gint xinerama_num
         pixmap->get_size(width, height);
         program_log("created new xin pixmap %x (%d x %d)", GDK_PIXMAP_XID(pixmap->gobj()), width, height);
 	}
+    else 
+        dont_set_atoms = true;
 
 	// set the colormap 
 	pixmap->set_colormap(colormap);
@@ -370,10 +373,15 @@ bool SetBG::set_bg_xinerama(XineramaScreenInfo* xinerama_info, gint xinerama_num
 		return false;
 	}
 
-	XChangeProperty(xdisp, xwin, prop_root, XA_PIXMAP, 32, PropModeReplace, (unsigned char *) &xpm, 1);
-	XChangeProperty(xdisp, xwin, prop_esetroot, XA_PIXMAP, 32, PropModeReplace, (unsigned char *) &xpm, 1);
+    if (!dont_set_atoms)
+    {
+	    XChangeProperty(xdisp, xwin, prop_root, XA_PIXMAP, 32, PropModeReplace, (unsigned char *) &xpm, 1);
+    	XChangeProperty(xdisp, xwin, prop_esetroot, XA_PIXMAP, 32, PropModeReplace, (unsigned char *) &xpm, 1);
+        program_log("set _XROOTPMAP_ID and ESETROOT_PMAP_ID atoms to %x", xpm);
+    }
+    else
+        program_log("xin not setting atoms cuz i was told not to");
 
-    program_log("set _XROOTPMAP_ID and ESETROOT_PMAP_ID atoms to %x", xpm);
 
 	// set it gtk style
 	window->set_back_pixmap(pixmap, false);
