Inform 6: "initial" being ignored

I have a TV’s power plug’s “initial” routine set to change, depending on whether or not it’s plugged in to the wall socket:

	initial [;
	  print "The television's power cord ";
	    if (self has plugged_in)
	      print
	      "is plugged into the wall outlet.^";
	    else print
	      "is laying on the floor.^";
	],

I assumed this wouldn’t cause any trouble, and indeed, upon entering the room, the room description shows it as “The television’s power cord is laying on the floor.” However, should the player pick the cord up, the game ignores this “initial” description from then on: dropping it back down, as well as plugging the cord into the wall socket, produce the quite undescriptive “You can also see a power cord here.”

I’ve tried a couple of workarounds (such as causing the act itself of plugging/unplugging the cord to change the “initial” description), and yet nothing seems to take.

Initial is only called so long as the object hasn’t been moved by the player. If you change that to a describe routine it will probably work.

Thanks! Making it a “describe” routine works, but there’s one little problem with it; after being dropped and/or plugged into the wall, its room description lists it before the television and other objects whenever the player looks. Is there some way to move it down to the bottom of the list?