diff --git a/smack-core/src/main/java/org/jivesoftware/smack/packet/Packet.java b/smack-core/src/main/java/org/jivesoftware/smack/packet/Packet.java
new file mode 100644
index 000000000..55f301ed4
--- /dev/null
+++ b/smack-core/src/main/java/org/jivesoftware/smack/packet/Packet.java
@@ -0,0 +1,232 @@
+/**
+ *
+ * Copyright 2003-2007 Jive Software.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jivesoftware.smack.packet;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Deprecated interface of pre Smack 4.1 Stanzas.
+ * @deprecated use {@link Stanza} instead
+ */
+@Deprecated
+public interface Packet extends TopLevelStreamElement {
+
+ public static final String TEXT = "text";
+ public static final String ITEM = "item";
+
+ /**
+ * Returns the unique ID of the stanza. The returned value could be null
.
+ *
+ * @return the packet's unique ID or null
if the id is not available.
+ */
+ public String getStanzaId();
+
+ /**
+ *
+ * @return the stanza id.
+ * @deprecated use {@link #getStanzaId()} instead.
+ */
+ @Deprecated
+ public String getPacketID();
+
+ /**
+ * Sets the unique ID of the packet. To indicate that a packet has no id
+ * pass null
as the packet's id value.
+ *
+ * @param id the unique ID for the packet.
+ */
+ public void setStanzaId(String id);
+
+ /**
+ *
+ * @param packetID
+ * @deprecated use {@link #setStanzaId(String)} instead.
+ */
+ @Deprecated
+ public void setPacketID(String packetID);
+
+ /**
+ * Returns who the packet is being sent "to", or null if
+ * the value is not set. The XMPP protocol often makes the "to"
+ * attribute optional, so it does not always need to be set.
+ * + * @return who the packet is being sent to, or null if the + * value has not been set. + */ + public String getTo(); + + /** + * Sets who the packet is being sent "to". The XMPP protocol often makes + * the "to" attribute optional, so it does not always need to be set. + * + * @param to who the packet is being sent to. + */ + public void setTo(String to); + + /** + * Returns who the packet is being sent "from" or null if + * the value is not set. The XMPP protocol often makes the "from" + * attribute optional, so it does not always need to be set.
+ *
+ * @return who the packet is being sent from, or null if the
+ * value has not been set.
+ */
+ public String getFrom();
+
+ /**
+ * Sets who the packet is being sent "from". The XMPP protocol often
+ * makes the "from" attribute optional, so it does not always need to
+ * be set.
+ *
+ * @param from who the packet is being sent to.
+ */
+ public void setFrom(String from);
+
+ /**
+ * Returns the error associated with this packet, or null if there are
+ * no errors.
+ *
+ * @return the error sub-packet or null if there isn't an error.
+ */
+ public XMPPError getError();
+ /**
+ * Sets the error for this packet.
+ *
+ * @param error the error to associate with this packet.
+ */
+ public void setError(XMPPError error);
+
+ /**
+ * Returns the xml:lang of this Stanza, or null if one has not been set.
+ *
+ * @return the xml:lang of this Stanza, or null.
+ */
+ public String getLanguage();
+
+ /**
+ * Sets the xml:lang of this Stanza.
+ *
+ * @param language the xml:lang of this Stanza.
+ */
+ public void setLanguage(String language);
+
+ /**
+ * Returns a copy of the packet extensions attached to the packet.
+ *
+ * @return the packet extensions.
+ */
+ public List
+ * Changes to the returned set will update the packet extensions, if the returned set is not the empty set.
+ *
+ * When possible, use {@link #getExtension(String,String)} instead.
+ *
+ * The argument elementName
may be null.
+ *